C#在List <T>中查找对象

Tvd*_*Tvd 2 c# list exists find

我有一个清单.我想知道如何编写LINQ左右,以查找它们是否存在一个id ="CLR"的MyTypes的obj.

我想知道它是否存在及其索引.因此,如果它存在,那么通过它的索引我可以用MyTypes的新对象替换,否则添加它.

我知道我通过迭代列表中的项目来做到这一点,但这比使用LINQ语句要耗费时间.如果我错了,请纠正我.

可以提供任何帮助.

Ani*_*Ani 10

你真的不需要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);
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你确定你真的不需要某种查找表吗?您的使用模式表明您Dictionary<string, Foo>不是一个或类似而不是列表.