拆分逗号分隔的字符串并存储到变量中

Split comma separated string and store into variables

我想拆分一个字符串并将每个数据存储到 C# 中的变量。 我怎样才能做到这一点?

我的代码是:

string name="John,Hutkins,Doe,San Francisco CA";

输出应该是这样的:

string fname = "John";
string mname = "Hutkins";
string lname = "Doe";
string address= "San Francisco CA";

它很简单:

var results = name.Split(',');

if(results.Length != 4)
 throw new InvalidOperationException("Oh Noes!!!");

string fname = results[0];
string mname =  results[1];
string lname =  results[2];
string address=  results[3];

警告如果地址中有逗号,这将失败。

如果这是一个 CSV 文件,考虑使用专用的 CSV 解析器,有很多

进一步阅读

String.Split Method

Returns a string array that contains the substrings in this instance that are delimited by elements of a specified string or Unicode character array.

看起来像 class

更好的情况
public class PersonalInfo 
{

    public FName { get; private set; }
    public LName { get; private set; }
    public MName { get; private set; }
    public Address { get; private set; }

    public PersonalInfo (string info)
    {
        string[] items = info.Split(',');
        FName = items [0];
        MName = items [1];
        LName = items [2];
        Address = items [3];

    }

    public override ToString()
    {
       // return $"{LName}, {FName} {MName}"; // vs 2017
       return string.Format("{0}, {1} {2}", LName, FName, MName); // vs 2008
    }


}

现在您实际上可以在列表等中使用您的对象

var pi = new PersonalInfo("John,Hutkins,Doe,San Francisco CA");
textBox1.Text = pi.FName;
. . . . . . . 

如果此字符串来自 .csv 文件,请考虑使用可用的 csv 解析器。 您也可以使用任何方式使用此方法。

String [] results = name.Split(',');

在这里,您的姓名将存储在结果数组中。索引顺序将是从 0 开始的字符串中的名称顺序; 像这样

String address = results[3];

但是这里有一个错误。由于您使用逗号分隔值,因此您不能在地址中使用逗号,这会很困难。尝试使用类似“|”的东西od '*'.

此致