私はコレクションを持っています
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が返されます。xWherenew KeyValuePair<string, Details>
しかし問題はnull の Details 値new KeyValuePair<string, Details>が含まれていることです。
句から一致が見つからない場合、 like.Whereを返す LINQ (拡張) メソッドを使用できるかどうか疑問に思っていましたが、デフォルトのパラメーターなしのコンストラクターを使用して/の部分が初期化されていますか? そのため、null ではありません。new KeyValuePair<string, Details>SingleOrNew.ValueDetailsKeyValuePairDetails