0

以下のリストをLINQに変換するには? ここで、QueueDataSource は ArrayList です。

         switch (queue.QueueTypeID)
        {
            case (int)QueryType.DataEntry:
                dataEntryQueue.QueueDataSource.Add(new
                {
                    QueueID = queue.QueueID,
                    LinkText = queueName,
                    Uid = sentinel
                });
                break;
            case (int)QueryType.Sort:
                sortingQueue.QueueDataSource.Add(new
                {
                    QueueID = queue.QueueID,
                    LinkText = queueName,
                    Uid = sentinel
                });
                break;
            case (int)QueryType.CaseList:
                myQueue.QueueDataSource.Add(new
                {
                    QueueID = queue.QueueID,
                    LinkText = queueName,
                    Uid = sentinel
                });
                break;
        }
4

2 に答える 2

0

あなたが質問で何を求めているのか完全にはわかりません。Linq を使用して ArrayLists にアクセスできるようにする場合は、LinqCast<T>()またはOfType<T>()メソッドを使用します。

dataEntryQueue.QueueDataSource.Cast<QueueItem>().Where( q => q.QueueID == 1 ) ...

あるいは、上記のように ArrayList を取り除き、 を使用しますList<T>

どちらの場合も、QueueItem クラスを定義し、それをコード内の匿名型の代わりに使用する必要があります。

そうでなければ、@ yBeeの答えはあなたが求めているもののようです。

于 2013-02-19T07:22:27.587 に答える
0

あなたのコードによると、sourceは列挙可能ですqueue:

dataEntryQueue.QueueDataSource.AddRange((from queue in source
                                         where queue.QueueTypeID == QueryType.DataEntry
                                         select new {
                                                        QueueID = queue.QueueID,
                                                        LinkText = queueName,
                                                        Uid = sentinel
                                                    }).ToList());

他の 2 つの配列リストについても同様です。

于 2013-02-19T07:28:31.627 に答える