2017-02-17 55 views
1

我正試圖編寫一個小程序來處理Windows服務器更新服務(WSUS)上的Windows更新。雖然這是一個普遍的問題,但我會舉一個具體的例子。我可以在C#中使用LINQ來訪問WSUS集合

GetComputerTargetGroups()返回一個ComputerTargetGroupCollection 我想要做的是一樣的東西:

ComputerTargetGroupCollection c = // get the collection. 
Guid guid = c.Single(tg => tg.Name == "Some Name").Id 

但是這似乎並不可能。我是對的,這是不可能的,或者我錯過了什麼?

回答

1

由於收集不執行IEnumerable<T>,您無法獲得.Single的工作。要修復它,您需要首先投射集合中的項目類型。

Guid guid = c.Cast<IComputerTargetGroup>().Single(tg => tg.Name == "Some Name").Id 
+0

嗯,我簡直不敢相信那麼簡單。感謝您的答覆。 –

+0

如果我解決了您的問題,請點擊答案旁邊的複選標記以接受答案。 –

+0

我必須是盲人 - 我看了一個盒子,以檢查它作爲答案 - 老年人設置。 O糊塗我自己以前未能發現IEnumerable和IEnumerable之間的區別 我通常使用泛型集合。再次感謝。 –

相關問題