1

ユーザーが追加する名前を含む配列またはリストが必要です。また、名前がすでに存在する場合にその名前を追加できないようにするチェックを実行する必要があります。これはかなり単純なはずですが、解決策を見つけることができませんでした。

4

3 に答える 3

2

を使用しHashSet<string>ます。HashSetはユニークな要素のコレクションです。それらの.Addメソッドはtrue、要素が追加された場合に戻り、falseそうでない場合に戻ります。

このようなデータ構造を使用できない場合は.Contains、リストを呼び出して、追加する要素を渡すだけです。 が返された場合はtrue、追加しないでください。それ以外の場合は、リストに追加できます。

于 2013-03-20T21:32:24.997 に答える
2

私はあなたがちょうど後かもしれないと思います:

if (list.Contains(name))

または:

if (array.Contains(name))

それはそれと同じくらい簡単です!両方とも、そのメソッドを使用してインターフェイスをList<T>実装T[]します。もちろん、これは完全一致に満足していることを前提としています。もっと複雑なものが必要な場合は、おそらくLINQ を使用します。例えば:IList<T>ContainsAny

if (array.Any(x => x.StartsWith(name))
于 2013-03-20T21:32:31.433 に答える
0

これは、リストがインスタンス化されている場合に機能します。

//List<string> list
list.contains(specifiedstring) 

それ以外の場合、文字列フィールド-リストを持つ複雑なオブジェクトの場合は、次を使用します。

//For a List<ClassA> list
var exists = list.Any(x => !String.IsNullOrWhitespace(x.StringAField) && 
                          x.StringAField.Equals(string));

これにより、ifステートメントまたはその他の条件をチェックインするためのbool値が得られます。

于 2013-03-20T21:37:07.867 に答える