2

重複の可能性:
アレイから重複を削除します

定義された数の要素を含むint配列があり、すべて正です。これから、すべての要素が1回だけ表示される配列を取得したいと思います。たとえば、最初の配列がのようなものだった場合、{2000,2011,2011,2012,2009,2009,2000}これを取得したいと思います{2000,2011,2012,2009}。これどうやってするの?私はforループでたくさんのことを試しましたが、なんとか良いことをすることができません。

4

4 に答える 4

8

LINQを使用すると、簡単です。

var intArray = new[] { 2000, 2011, 2011, 2012, 2009, 2009, 2000 };
var uniqueArray = intArray.Distinct().ToArray();

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx

別の方法は、Enumerable.GroupByを使用することです。

uniqueArray = intArray.GroupBy(i => i).Select(grp => grp.Key).ToArray();
于 2012-05-31T15:50:38.583 に答える
7

あなたは以下を行うことができます

var yourArray = yourArray.Distinct().ToArray();

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx

于 2012-05-31T15:49:23.437 に答える
2

別の方法:

    int[] _array = new int[] {1, 2, 1,2}
    var myArray = new System.Collections.ArrayList();

    foreach(var item in _array){
        if (!myArray.Contains(item))
            myArray.Add(item);
    }
于 2012-05-31T16:01:54.877 に答える
0

他の回答に加えてHashSet、特に事前に重複する値があることがわかっている場合は、を確認することをお勧めします。

于 2012-05-31T15:53:04.547 に答える