次のコード スニペットを使用して、 Name に基づいて特定のものを選択しobject
ます。collection
property
ObservableCollection<Test> collection = new ObservableCollection<Test>();
collection.Add(new Test() { Id =1, Name ="Nestor"});
collection.Add(new Test() { Id = 2, Name = "Rohan" });
collection.Add(new Test() { Id = 3, Name = "Guy" });
collection.Add(new Test() { Id = 4, Name = "Mike" });
string s = "Rohan";
var temp = collection.FirstOrDefault(x =>
{
if (x.Name != null)
{
return x.Name.ToString().Equals(s);
}
else
{
return x.Name;
}
});
このコード スニペットで次のエラーが発生しました。
エラー:
エラー 1 ラムダ式をデリゲート型 'System.Func' に変換できません。これは、ブロック内の戻り値の型の一部がデリゲートの戻り値の型に暗黙的に変換できないためです C:\Users\vadiveln\documents\visual studio 2010\Projects\WindowsFormsApplication12\WindowsFormsApplication12 \Program.cs 36 25 WindowsFormsApplication12 エラー 2 タイプ 'string' を 'bool' に暗黙的に変換できません C:\Users\vadiveln\documents\visual studio 2010\Projects\WindowsFormsApplication12\WindowsFormsApplication12\Program.cs 36 32 WindowsFormsApplication12
これを調べて、 の正しい方法を使用するための提案を提供してくださいLinq query
。前もって感謝します。
以下の変更されたコード:
ObservableCollection<Test> collection = new ObservableCollection<Test>();
collection.Add(new Test() { Id = 1 });
collection.Add(new Test() { Id = 2, Name = "Rohan" });
collection.Add(new Test() { Id = 3, Name = "Guy" });
collection.Add(new Test() { Id = 4, Name = "Mike" });
string s = "Rohan";
var temp = collection.FirstOrDefault(x =>
{
return x.Name.Equals(s);
});
基になるコレクションで null フィールドを使用しました。次に、linq クエリの使用方法