私はコレクションを持っています
List<KeyValuePair<string, Details>> x
どこ
public class Details
{
private int x;
private int y;
public Details()
{
x = 0;
y = 0;
}
...
}
コレクションでLINQを使用して、Details
インスタンスを返します
x.Where(x => x.Key == aString).SingleOrNew().Value
は次.SingleOrNew
のように定義されています
public static T SingleOrNew<T>(this IEnumerable<T> query) where T : new()
{
try
{
return query.Single();
}
catch (InvalidOperationException)
{
return new T();
}
}
そのため、 a が節を満たすKeyValuePair<string, Details>
リストに見つからない場合、 aが返されます。x
Where
new KeyValuePair<string, Details>
しかし問題はnull の Details 値new KeyValuePair<string, Details>
が含まれていることです。
句から一致が見つからない場合、 like.Where
を返す LINQ (拡張) メソッドを使用できるかどうか疑問に思っていましたが、デフォルトのパラメーターなしのコンストラクターを使用して/の部分が初期化されていますか? そのため、null ではありません。new KeyValuePair<string, Details>
SingleOrNew
.Value
Details
KeyValuePair
Details