2017-02-17 17 views
1

Я пытаюсь написать небольшую программу для обработки обновлений Windows в службах обновления Windows Server (WSUS). Хотя это общий вопрос, я приведу конкретный пример.Могу ли я использовать LINQ в C# для доступа к коллекциям WSUS

GetComputerTargetGroups() возвращает ComputerTargetGroupCollection То, что я хотел бы сделать, это что-то вроде:

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

Но это не представляется возможным. Я прав, это невозможно, или я чего-то не хватает?

ответ

1

Вы не можете получить .Single, потому что коллекция не реализует IEnumerable<T>. Чтобы исправить это, вам нужно сначала указать тип элементов в коллекции.

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

Хммм, я не могу поверить, что все было так просто. Спасибо за ваш ответ. –

+0

Если я решил вашу проблему, пожалуйста, примите ответ, нажав на галочку рядом с ответом. –

+0

Я должен быть слепым - я все посмотрел на коробку, чтобы проверить ее как ответ - старость. O запутался раньше, не заметив разницу между IEnumerable и IEnumerable Обычно я использую Generic Collections. Еще раз спасибо. –