オブジェクトのリストをキューに変換して、同じ順序を維持するにはどうすればよいですか?
28582 次
5 に答える
58
Queue
を取り込むコンストラクターがありICollection
ます。リストをキューに渡して、同じ要素でリストを初期化できます。
var queue = new Queue<T>(list); // where 'T' is the lists data type.
于 2010-08-11T23:39:51.993 に答える
10
「同じ順序」とはどういう意味ですか?
これを行う場合:
var queue = new Queue<object>(list);
次に、キューはリストと同じ順序で列挙されます。つまり、を呼び出すと、Dequeue
以前にに存在していた要素が返されlist[0]
ます。
これを行う場合:
var queue = new Queue<object>(list.AsEnumerable().Reverse());
次に、キューはリストとは逆の順序で列挙されます。つまり、を呼び出すと、Dequeue
以前にに存在していた要素が返されlist[list.Count - 1]
ます。
于 2010-08-11T23:42:48.240 に答える
4
var q = new Queue<Object>();
for( int i = 0; i < list.Count; i++ ) q.Enqueue( list[i] );
つまり、「同じ順序」であると仮定すると、キューからデキューされる最初のアイテムはlist[0]である必要があります。
逆の場合は、逆ループを使用してください。for( int i = list.Count-1; i >= 0; i-- )
于 2010-08-11T23:38:47.737 に答える
3
この拡張機能をツールボックスに追加して、特定のタイプのFIFOキューを作成します。
public static class ListExtensions
{
public static Queue<T> ToQueue<T>(this List<T> items) => new Queue<T>(items);
}
于 2019-06-12T18:43:21.970 に答える
2
var mylist = new List<int> {1,2,3};
var q = new Queue<int>(mylist);
于 2010-08-11T23:41:01.317 に答える