在C#列表中搜索

NIl*_*nke 0 .net c# c#-4.0

我有一个包含以下结构的列表.

class CompareDesignGroup
{
    string FieldId;
    string Caption;
}
Run Code Online (Sandbox Code Playgroud)

该列表包含上述结构的项目.

如果已知FieldId,是否可以检索列表中的元素?

Ste*_*fan 5

您可以在通用列表类上使用Find方法.find方法采用一个谓词,可以过滤/搜索单个项目的列表.

List<CompareDesignGroup> list = // ..;
CompareDesignGroup item = list.Find(c => c.FieldId == "SomeFieldId");
Run Code Online (Sandbox Code Playgroud)

item 如果列表中没有匹配项,则为null.

如果您需要查找多个项目,可以使用FindAll方法:

List<CompareDesignGroup> list = // ..;
List<CompareDesignGroup> result= list.FindAll(c => c.FieldId == "SomeFieldId");
Run Code Online (Sandbox Code Playgroud)