2009-02-25 4 views
1

Je reçois une liste de processus en cours d'exécution via LINQ.Comment remapper les propriétés dans LINQ?

Les deux propriétés que je veux sont "ProcessName" et "WorkingSet64".

Cependant, dans mon interface utilisateur, je souhaite que ces propriétés soient appelées "ProcessName" et "ProcessId". Comment repasser le nom "WorkingSet64" en "ProcessId"?

Je l'ai fait une syntaxe pseudo de ce que je cherche ci-dessous:

using System.Linq; 
using System.Windows; 
using System.Diagnostics; 

namespace TestLinq22 
{ 
    public partial class Window1 : Window 
    { 
     public Window1() 
     { 
      InitializeComponent(); 

      var theProcesses = 
       from p in Process.GetProcesses() 
       orderby p.WorkingSet64 descending 
       select new { p.ProcessName, p.WorkingSet64 alias "ProcessId" }; 

      foreach (var item in theProcesses) 
      { 
       TheListBox.Items.Add(item); 
      } 
     } 
    } 
} 

Répondre

5
select new { p.ProcessName, ProcessId = p.WorkingSet64 }; 
+0

damnit, vous venez de me battre :( –

2
var theProcesses = from p in Process.GetProcesses() 
        orderby p.WorkingSet64 descending 
        select new { p.ProcessName, ProcessId = p.WorkingSet64 }; 

Lorsque vous créez un objet annonymous si vous fournissez le nom de la propriété, il utilisera que, sinon Utilisez le nom de la propriété que vous avez sélectionnée.

Questions connexes