【发布时间】:2014-09-27 01:04:03
【问题描述】:
我需要执行这个查询:
1) 列出进程
2) 按名称排序
3) 消除重复名称
4) 在查询期间用一些数据实例化一个控件
但是在订购进程名称后我无法使用Distinct(它没有任何效果),我从未注意到这个问题,但它可能Distinct 语句只能用作a 的最后一个语句查询?
如何修复/改进此查询?
From proc As Process In Process.GetProcesses
Where Not BlackListedProcesses.Contains(proc.ProcessName)
Order By proc.ProcessName Ascending
Select New RadListDataItem With
{
.Text = String.Format("{0}.exe", proc.ProcessName),
.Image = ResizeImage(Icon.ExtractAssociatedIcon(proc.MainModule.FileName).ToBitmap, Width:=16, Height:=16)
}
更新
我发现我的错误太晚了,我试图区分进程对象而不是它们的名称,因为我没有使用 Select 来选择进程名称然后区分它们,但是如果我这样做了后续的 @ 987654325@语句接收的是String而不是进程...
我该如何解决?,我真的只会在 1 个查询中完成这个...
(From proc As Process In Process.GetProcesses
Where Not BlackListedProcesses.Contains(proc.ProcessName)
Order By proc.ProcessName Ascending
Select proc.ProcessName
Distinct).
Select(Function(p As Process)
Return New RadListDataItem With
{
.Text = String.Format("{0}.exe", p.ProcessName),
.Image = ResizeImage(Icon.ExtractAssociatedIcon(p.MainModule.FileName).ToBitmap, Width:=16, Height:=16)
}
End Function)
【问题讨论】:
-
你能分享你使用的代码
Distinct吗? -
当然可以,如果有必要的话,但是很抱歉,我不明白你的意思是代码的哪一部分,你能说得更具体些吗?,我尝试在“Order By”之后使用“Distinct”之前,在 LINQ 查询中,因为我需要在“选择”语句之前消除重复的进程名称。这只能在 1 个查询中完成?
标签: .net vb.net winforms linq telerik