C# 如何转换数组

C# 如何转换数组,c#,.net,linq,C#,.net,Linq,如何将下面的列表转换为LINQ?其中QueueDataSource是ArrayList switch (queue.QueueTypeID) { case (int)QueryType.DataEntry: dataEntryQueue.QueueDataSource.Add(new { QueueID = queue.QueueID,

如何将下面的列表转换为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;
        }

我不完全确定你在问什么。如果要使用Linq访问ArrayList,请使用Linq
Cast()
OfType()
方法,例如

dataEntryQueue.QueueDataSource.Cast<QueueItem>().Where( q => q.QueueID == 1 ) ...
dataEntryQueue.QueueDataSource.Cast()。其中(q=>q.QueueID==1)。。。
或者,如上所述,去掉ArrayList并使用
列表

在这两种情况下,您都需要定义QueueItem类,并在代码中使用它来代替匿名类型


否则@yBee的答案似乎就是您要找的。

根据您的代码,
source
队列
的可枚举项:

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

与其他两个数组列表类似。

LINQ用于强类型集合,如
List
。ArrayList是弱类型集合。我也不知道LINQ在这种情况下会如何帮助你。用于查询数据的LINQ'a。在您展示的代码示例中,您正在向弱类型的ArrayList添加元素。那么如何转换为List?使用
List
而不是
ArrayList