1

監視可能なコレクション内のアイテムの順序を逆にしたい。これは私のサンプルコードです:

        int[] collection1 = new int[] { 1, 2, 3, 4, 5 };
        ObservableCollection<int> obColl1 = new ObservableCollection<int>();
        foreach ( var item in collection1 ) // initial order 1,2,3,4,5
        {
            obColl1.Add(item);
            Console.WriteLine("Added {0} in ObservableCollection", item);
        }
        Console.WriteLine("Now reverse their order");

        obColl1.Reverse();
        foreach ( var item in obColl1 ) // still show 1,2,3,4,5 instead of 5,4,3,2,1
        {
            Console.WriteLine("After reversing ObservableCollection: {0}", item);
        }

        Console.WriteLine("Press any key to exit");
        Console.ReadKey();

出力結果は、最初の順序と同じ順序を示しています。何か不足していますか?いくつかの間違い?

前もって感謝します

4

2 に答える 2

3

それを再割り当てする必要があります:

obColl1 = new ObservableCollection<int>(obColl1.Reverse());
于 2013-07-25T11:10:27.927 に答える
2

戻り値をオブジェクトに割り当てる必要があります

何かのようなもの

int[] collection1 = new int[] { 1, 2, 3, 4, 5 };
ObservableCollection<int> obColl1 = new ObservableCollection<int>();
foreach (var item in collection1) // initial order 1,2,3,4,5
{
    obColl1.Add(item);
    Console.WriteLine("Added {0} in ObservableCollection", item);
}
Console.WriteLine("Now reverse their order");

var ret = obColl1.Reverse(); //try the changes here and the line below.
foreach (var item in ret) // still show 1,2,3,4,5 instead of 5,4,3,2,1
{
    Console.WriteLine("After reversing ObservableCollection: {0}", item);
}

Console.WriteLine("Press any key to exit");
Console.ReadKey();

Enumerable.Reverse Methodから、戻り値の型があることがわかるので、それをオブジェクトに割り当てる必要があります。

于 2013-07-25T10:59:11.873 に答える