それが正常に動作します処理パイプラインを理解
var query = Process.GetProcesses()
.OrderBy(p => p.WorkingSet64)
.ThenByDescending(p => p.Threads.Count);
.Where(p => p.ProcessName.Length < 9);
してください。テイク
var query = Process.GetProcesses()
.OrderBy(p => p.WorkingSet64)
.ThenByDescending(p => p.Threads.Count);
//.Where(p => p.ProcessName.Length < 9);
query = query.Where(p => p.ProcessName.Length < 9);
これは機能しません。なぜ最初の方法が働くのか分かりません。私の考えでは、これらのクエリは同じです。 ThenByDescendingは、Where()にパイプされたIOrderedEnumerable<T>
を返します。 WhereはIEnumerable<T>
としか動作しないため、最初のメソッドは機能しません。悲しいかな...それは働きます。
この処理パイプラインはどのように機能しますか?
配列は 'IEnumerable'と' GetProcesses'がプロセスの配列を返すhttp://msdn.microsoft.com/en-us/library/system.array.aspx –