我很可能这样做的方式不对,但是;
我在LINQ中有一个对象列表;
MyObj
string name
string somethingElse
List<MyObj> myObjects;
现在我正在尝试查看该列表中的任何对象是否具有字符串值;
所以我有;
if (Model.myObjects.Contains("thisobject", new MyObjComparer()))
{
}
在比较器中我有;
public class MyObjComparer: IEqualityComparer<MyObj>
{
public bool Equals(string containsString, MyObj obj)
{
return obj.name == containsString;
}
}
如何使用比较器检查对象字段中的字符串值?
答案 0 :(得分:10)
更简单的方法是:
if (Model.myObjects.Any(o => o.name == "thisobject"))
{
}
答案 1 :(得分:2)
您可以按如下方式使用FindAll方法:
foreach(var item in Model.myObjects.FindAll(x=>x.Contains("thisobject")))
{
//Do your stuff with item
}
答案 2 :(得分:2)
相等比较器只能判断两个相同类型的对象是否相等。我不知道你的用例,但你可以简单地做一些像
这样的事情if (Model.myObjects.Where(x => x.name == "thisobject").Any())
{
// Do something
}