gpt4 book ai didi

c# - 将 List 转换为字典 >

转载 作者:IT王子 更新时间:2023-10-29 04:21:06 28 4
gpt4 key购买 nike

我想获取一个对象列表并将其转换为字典,其中键是对象中的一个字段,值是对象中与键匹配的不同字段的列表。我现在可以用循环来做到这一点,但我觉得这应该可以用 linq 来完成,而不必编写循环。我在想 GroupBy 的组合和 ToDictionary但到目前为止还没有成功。

这是我现在的做法:

var samplesWithSpecificResult = new Dictionary<string, List<int>>();
foreach(var sample in sampleList)
{
List<int> sampleIDs = null;
if (samplesWithSpecificResult.TryGetValue(sample.ResultString, out sampleIDs))
{
sampleIDs.Add(sample.ID);
continue;
}
sampleIDs = new List<int>();
sampleIDs.Add(sample.ID);
samplesWithSpecificResult.Add(sample.ResultString, sampleIDs);
}

我用 .GroupBy().ToDictionay() 能到达的最远距离是Dictionary<sample.ResultString, List<sample>> .

如有任何帮助,我们将不胜感激。

最佳答案

尝试以下操作

var dictionary = sampleList
.GroupBy(x => x.ResultString, x => x.ID)
.ToDictionary(x => x.Key, x => x.ToList());

GroupBy子句将每个 Sample 分组列表中的实例 ResultString成员,但它只会保留 Id每个样本的一部分。这意味着每个元素都是一个 IGrouping<string, int> 。 .

ToDictionary部分使用 KeyIGrouping<string, int>作为字典键。 IGrouping<string, int>工具 IEnumerable<int>因此我们可以转换该样本集合'IdList<int>调用 ToList , 变成 Value给定的字典 Key .

关于c# - 将 List<MyObject> 转换为字典 <obj.string, List<obj.ID>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7614758/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com