我想制作一个Linq to object(Basic,Dictionary)

时间:2016-03-24 02:21:26

标签: c# linq

我想找到一种优雅的方式来使用Linq创建数据结构。

(从文本文件到字典/列表)。

我不知道如何启动它。

myFile.text就是这样(tab tabperated)

Apple   Fruit   2016-March-24-01
Rice    Grain   2016-March-24-02
Milk    Dairy   2016-March-24-03
Egg     Poultry 2016-March-24-04
...
..
.

我的代码(抱歉基础作品)

string myFile = @"...\myFile.txt";
string myContent = File.ReadAllText(myFile);  
Dictionary<string, string> myDictionary = new Dictionary<string, string>();
foreach( string x in Regex.Split(myContent, @"\r\n") )
{
    if( x != "" )
    {
        string[] myArray = Regex.Split(x, @"\t");
        myDictionary.Add(myArray[0], myArray[1]);  // I need the first two items only.
    }
}
MessageBox.Show(myDictionary.Count.ToString() + "\n\n" + string.Join("\n", myDictionary.Keys) + "\n\n" + string.Join("\n", myDictionary.Values));

请帮助。

1 个答案:

答案 0 :(得分:4)

您的代码等同于以下内容。

var myDictionary = File.ReadLines(myFile)
                       .Where(x => x != string.Empty)
                       .Select(x => x.Split('\t'))
                       .ToDictionary(x => x[0], x => x[1]);