使用LINQ查询实例化2D数组

时间:2010-11-03 12:51:08

标签: c# linq

我是C#的新手,所以需要你的帮助。

我有一个包含很多行和3个制表符分隔字段的文件。我想读取每一行,从行中提取字段,并将3个提取的值推送到对象中。最后,我应该得到一个对象数组。数组的长度应该等于文件中的行数。并且文件中的所有信息都应该包含在对象中。

例如文件

abcd pqrs mnop
asdf asdf asdf
poiu poiu poiu 
xcvx xcvb rtew
: : : :
: : : :
: : : :

这是我能想到的:


班级定义

Class MyClass
{
   string field1;
   string field2;
   string field3;
}

主要

String[] Content = File.ReadAllLines("file.txt");

  var query = from line in Content
              let Parts = line.Split(Separators,StringSplitOptions.RemoveEmptyEntries)
                          select new MyClass
                                    {field1 = Parts[0],
                                     field2 = Parts[1],
                                     field3 = Parts[2],
                                     };

如何从中获取List或IEnumerable对象?

2 个答案:

答案 0 :(得分:4)

您的代码已经为您提供了IEnumerable<MyClass>值(在query变量中) 如果您需要列表,可以在其上调用ToList()

答案 1 :(得分:1)

var query = (from line in Content 
          let Parts = line.Split(Separators,StringSplitOptions.RemoveEmptyEntries) 
                      select new MyClass 
                                {field1 = Parts[0], 
                                 field2 = Parts[1], 
                                 field3 = Parts[2], 
                                 }).ToList<MyClass>();

就是这样。

查询现在将是列表<MyClass&gt;