|
■No103747 (bun さん) に返信 > コレクションに、含まれるデータが全て同一であるかどうかを判定したいです。 値の一致性ですか? 参照の一致性ですか?
var list = new List<decimal> { 1.23M, 1.2300M };
// これらは False System.Console.WriteLine( list[0].ToString() == list[1].ToString() ); System.Console.WriteLine( ReferenceEquals( list[0], list[1]) );
// これらは True System.Console.WriteLine( list[0] == list[1] ); System.Console.WriteLine( list[0].Equals(list[1]) );
> 処理速度を考えると、別の値が現れた時点で、「全て同一とはなっていない」と返したいです。 同一排除なら、最初から List ではなく、HashSet や SortedSet を採用するという選択肢もありますが、 今回は「すべて同じかどうか」ですから、ちょっと状況が異なりますね。
> list.All(x => x == list.FirstOrDefault()) > がいいのかなと思いますが、もっといい案とかありますかねぇ? これだと FirstOrDefault が毎回呼び出されそうなので var f = list.FirstOrDefault(); return list.All(x => x == f); じゃないですかね。
|