文字列が "1,2,3,1,5,7"の場合は、これを配列またはハッシュテーブルなどに配置することができます。配列の値を比較する方法
どのようにすべての値が同じであると判断しますか?上の例では失敗するでしょうが、もしあなたが "1,1,1"を持っていればそれは本当でしょう。
文字列が "1,2,3,1,5,7"の場合は、これを配列またはハッシュテーブルなどに配置することができます。配列の値を比較する方法
どのようにすべての値が同じであると判断しますか?上の例では失敗するでしょうが、もしあなたが "1,1,1"を持っていればそれは本当でしょう。
これは、ラムダ式を使用してうまく行うことができます。
var allSame = lst.TrueForAll(x => x == lst[0]);
そして(IEnumerable<T>
)反復可能なため、col
の名前:lst
名前付きリスト(List<T>
)については、
var allSame = Array.TrueForAll(arr, x => x == arr[0]);
:
var first = col.First();
var allSame = col.All(x => x == first);
arr
という名前の配列については、
ただし、これらのメソッドは空の配列/リスト/ iterablesを処理しないことに注意してください。しかし、そのようなサポートは簡単に追加することができます。
各値を繰り返し、最初の値を変数に格納し、残りの配列をその変数と比較します。即座に失敗すると、すべての値が同じではないことがわかります。以下のような何かについて
いいです、私はほとんどコードを見ることができます! – Secko
どのように...
string numArray = "1,1,1,1,1";
return numArrray.Split(',').Distinct().Count() <= 1;
残念ながら、Linqはこのプロジェクトのオプションではありません – Jon
私は滑らかなアプローチとなりList<T>.TrueForAll
を使用してだと思います。
ない単純なループほど効率的で(結果が早く決めることができたとしても、それは常にすべての項目を処理して)、しかし:
if (new HashSet<string>(numbers.Split(',')).Count == 1) ...
「私の宿題をしてください」タグのですか? – Sergio
私はこの質問が以前に尋ねられたと思います... –