オブジェクト内のiequalitycomparer文字列値
-
24-10-2019 - |
質問
私はおそらくこれを間違った方法でやっていますが、
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;
}
}
オブジェクトフィールドの文字列値に対してチェックして比較を使用するにはどうすればよいですか?
解決
より簡単な方法は、これを行うことです。
if (Model.myObjects.Any(o => o.name == "thisobject"))
{
}
他のヒント
Findallメソッドを次のように使用できます。
foreach(var item in Model.myObjects.FindAll(x=>x.Contains("thisobject")))
{
//Do your stuff with item
}
平等比較は、同じタイプの2つのオブジェクトが等しいかどうかを判断するのに適しています。私はあなたのユースケースを知りませんが、あなたは単にようなことをすることができますか
if (Model.myObjects.Where(x => x.name == "thisobject").Any())
{
// Do something
}
所属していません StackOverflow