Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何填充列表<;T>;来自由逗号和换行符分隔的源字符串_C#_List - Fatal编程技术网

C# 如何填充列表<;T>;来自由逗号和换行符分隔的源字符串

C# 如何填充列表<;T>;来自由逗号和换行符分隔的源字符串,c#,list,C#,List,我有一根绳子 string strsource = "0,0,200,0,206,2,28515663\r\n0,0,200,0,206,2,2029\r\n0,0,200,1,8,2,2039\r\n0,0,200,1,12,2,2039\r\n0,0,200,2,8,2,2039\r\n0,0,200,2,12,2,2039\r\n0,0,200,3,8,2,2040\r\n0,0,200,3,12,2,2040\r\n"; 和一个具有属性的类 public class justme {

我有一根绳子

string strsource = "0,0,200,0,206,2,28515663\r\n0,0,200,0,206,2,2029\r\n0,0,200,1,8,2,2039\r\n0,0,200,1,12,2,2039\r\n0,0,200,2,8,2,2039\r\n0,0,200,2,12,2,2039\r\n0,0,200,3,8,2,2040\r\n0,0,200,3,12,2,2040\r\n";
和一个具有属性的类

public class justme
{
    public string field1 {get; set; }
    public string field2 {get; set; }
    public string field3 {get; set; }
    public string field4 {get; set; }
    public string field5 {get; set; }
    public string field6 {get; set; }
    public string field7 {get; set; }
}

知道源上的字段由逗号分隔,列表上的新项目由
\r\n

拆分、循环、拆分、分配,填充
列表的最佳方法是什么

List<justme> justmes = new List<justme>();
foreach(var line in Regex.Split(strsource, "\r\n")) {
  string[] fields = line.Split(',');

  justmes.Add(new justme {
    field1 = fields[0];
    field2 = fields[1];
    // field3 = ...
    // etc...
  });
}
List justmes=新列表();
foreach(Regex.Split(strsource,“\r\n”)中的变量行){
string[]fields=line.Split(',');
添加(新的justme){
field1=字段[0];
字段2=字段[1];
//字段3=。。。
//等等。。。
});
}

这是一个很好的表达方式

var lines = strsource.Split(new string[] { "\r\n" }, StringSplitOptions.None)
.Where(line => line != string.Empty)
.Select(line =>
{
    var cols = line.Split(',');

    var me = new justme();
    {
        me.field1 = cols[0];
        me.field2 = cols[1];
        me.field3 = cols[2];
        me.field4 = cols[3];
        me.field5 = cols[4];
        me.field6 = cols[5];
        me.field7 = cols[6];
    }

    return me;
}).ToArray();

你能展示你的尝试吗?您所要做的就是,如您所说,在这两个分隔符上拆分。拆分为“\r\n”,然后将这些结果拆分为“,”try it;-)你说的“最好”是什么意思?例如,您是否希望使用最简单的方法,最能适应无效数据的方法,以及在需求发生变化时最容易修改的方法?