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