gpt4 book ai didi

c# - 使用 LINQ 做我需要做的事情的更好方法?

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:23 24 4
gpt4 key购买 nike

我不确定是否有更有效的方法来使用 LINQ 来完成我正在做的事情...我有两个枚举:

enumA(string): { "Andy", "Bill", "Charlie", "Doug"}
enumB(foo): { "Doug", "Edward", "George", "Bill"}(注意 enumB 实际上包含对象)

var dictionary = new Dictionary<string, 
foreach (var a in enumA)
{
var b = enumB.SingleOrDefault(x => String.Equals(x.ToString(), a));

if (b != null)
dictionary[a] = b;
}

当我确定可能有更“正确”的方法使用 LINQ 创建字典时,一遍又一遍地枚举 enumB 并以这种方式创建字典对我来说似乎很糟糕。

最佳答案

您可以使用

高效地做到这一点
join

和一个

ToDictionairy

之后调用。

        var listA = "abcd";
var listB = "cdef";

var tuples = from charFromA in listA
join charFromB in listB
on charFromA.ToString() equals charFromB.ToString() // instead of ToString(), do something complex
select new { A = charFromA, B = charFromB };

var dictionairy = tuples.ToDictionary(keySelector: t => t.A,elementSelector: t => t.B);

关于c# - 使用 LINQ 做我需要做的事情的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13423353/

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