我有一个列表。我想知道如何编写 LINQ 来查找它们是否存在 MyTypes 的 obj,其 id =“CLR”。
我想知道它是否存在及其索引。因此,如果它存在,那么我可以通过它的索引替换为 MyTypes 的新对象,否则添加它。
我知道我可以通过迭代列表中的项目来做到这一点,但这比使用 LINQ 语句更耗时。有错请指正。
任何人都可以提供帮助。
最佳答案
为此您真的不需要 LINQ;有方便的 List<T>.FindIndex
方法
List<Foo> foos = ...
int index = foos.FindIndex(foo => foo != null && foo.Id == "CLR");
if(index != -1)
{
Foo replacement = ...
foos[index] = replacement;
}
else
{
Foo toAdd = ...
foos.Add(toAdd);
}
顺便问一下,您确定您实际上不需要某种查找表吗?您的使用模式表明您不需要 Dictionary<string, Foo>
或类似的而不是列表。
关于C# 在 List<T> 中查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666358/