我有一個具有以下值的 CSV 檔案。我想閱讀 CSV 并在 C# 中創建字典。字典鍵 = 名稱和值,List<Product>例如Dictionary<string, List<Product>>
注意:在 CSV 中,名稱可以重復(筆記本電腦)。所以我必須首先獲得一個不同的名稱來獲取字典的鍵并構建產品串列。
例如,在下面的示例資料字典中將有兩個鍵
- 筆記本電腦(有兩個值)
- 移動(只有一個值)
我找到了以下代碼,但不確定如何根據上述要求構建字典。
var dict = File.ReadLines("textwords0.csv").Select(line => line.Split(',')).ToDictionary(line => line[0], line => line[1]);
Name Code Price
laptop , 9999, 100.00
Mobile , 7777, 500.00
laptop , 9999, 100.00
public class Product
{
string Name {get;set;}
string code {get;set;}
string Price {get;set;}
}
uj5u.com熱心網友回復:
由于字典鍵不重復,因此您需要 a .GroupBy()to group by Name first。
.GroupBy()- 分組Name,并回傳一個IEnumerable匿名型別{ string Name, List<Product> Products }。.ToDictionary()- 將以前IEnumerable的資料轉換為鍵值對。
var dict = File.ReadLines("textwords0.csv")
.Select(line => line.Split(','))
.GroupBy(
x => x[0],
(k, x) => new
{
Name = k,
Products = x.Select(y => new Product
{
Name = y[0],
code = y[1],
Price = y[2]
})
.ToList()
})
.ToDictionary(x => x.Name, x => x.Products);
.NET Fiddle 演示示例
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/487940.html
