gpt4 book ai didi

c# - 遍历 IEnumerable
转载 作者:太空宇宙 更新时间:2023-11-03 18:27:28 24 4
gpt4 key购买 nike

我使用 enumerable 和 group by LINQ 对来自具有 5 列的 DataTable 的数据进行分组。现在我需要访问结果中的每一列数据。

编辑:

    private IEnumerable<object> getItemsForDisplay()
{
var result = toDisplay.AsEnumerable()
.GroupBy(x => new
{
Col1 = x.Field<string>("rItem"),
Col2 = x.Field<string>("rMaterial"),
Col3 = x.Field<string>("rSpecs")
})
.Select(g => new
{
Col1 = g.Key.Col1,
Col2 = g.Key.Col2,
Col3 = g.Key.Col3,
Col4 = String.Join(", ", g.Select(row => row.Field<string>("rQuantity"))),
Col5 = String.Join(", ", g.Select(row => row.Field<string>("rOptional"))),
}).ToList();
return result;
}

//In another function
foreach (var item in result)
{
//item.tostring shows this: {"aaa","bbb","ccc","ddd","eee")
//turn it to array string or list to access "aaa".. etc etc
}

最佳答案

属性的名称是 Col1... Col5

foreach (var item in result)
{
Console.WriteLine(item.Col1);
Console.WriteLine(item.Col2);
Console.WriteLine(item.Col3);
Console.WriteLine(item.Col4);
Console.WriteLine(item.Col5);

// If you want an array:
var arr = new string[] { item.Col1, item.Col2, item.Col3, item.Col4, item.Col5 };
}

修订后

你不应该传递给其他函数/返回匿名对象(技术上你可以,但你不应该)。参见 https://stackoverflow.com/a/6625008/613130https://stackoverflow.com/a/18189923/613130 .如果您确实需要,可以使用 dynamic

foreach (dynamic item in result)
{
Console.WriteLine(item.Col1);
Console.WriteLine(item.Col2);
Console.WriteLine(item.Col3);
Console.WriteLine(item.Col4);
Console.WriteLine(item.Col5);

// If you want an array:
var arr = new string[] { item.Col1, item.Col2, item.Col3, item.Col4, item.Col5 };
}

关于c# - 遍历 IEnumerable<object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31029518/

24 4 0