List<int?>
null 以外の場所をList<int>
ループなしに変換する巧妙な方法はありますか?
質問する
97 次
3 に答える
7
ここでは、コードにループはありません。これにより、質問のnull以外の部分に基づいてnull値が破棄されます。
var values = given.Where(n => n.HasValue).Select(n => n.Value).ToList();
于 2012-11-08T22:49:06.433 に答える
3
null合体演算子を使用できます:
var result = myList.Select(x => x ?? default(int)).ToList();
于 2012-11-08T22:53:42.323 に答える
2
いいえ、これを行うための参照保存キャストはありません。List<int>
とList<int?>
は明確に互換性のないタイプです。
ループを (直接的または間接的に) 使用することを意味するコピーを作成する必要があります。LINQ を使用すると、コード内で明示的なループが回避されますが、明らかに内部でループが使用されます。
于 2012-11-08T22:50:56.343 に答える