У меня есть item
объект, который выглядит следующим образом:
item["siteId"] = "{7BAD6B24-3B69-4CB9-AD02-9B0003C1927D}";
item["webId"] = "{F66ED194-A91C-49FA-8672-F87DFEE3EF08}";
item["value"] = "blah";
Этот пример показывает, что значение blah
находится в сети {F66ED194-A91C-49FA-8672-F87DFEE3EF08}
, которая находится на сайте {7BAD6B24-3B69-4CB9-AD02-9B0003C1927D}
.
Этот предмет находится в коллекции вместе со многими другими.Коллекция называется items
.
Я пытался написать запрос LINQ, который группируется сначала по идентификатору сайта, а затем по идентификатору сети, но не может получить правильный синтаксис.Вот моя попытка:
var itemGroups = from item in items.Cast<SPListItem>()
let siteId = (string) item["siteId"]
group item by siteId
into siteGroup
select new
{
SiteId = siteId,
SiteGroups =
from siteItem in siteGroup
let webId = (string) siteItem["webId"]
group siteItem by webId into webGroup
select new
{
WebId = webId,
WebGroups = from siteItem in webGroup
}
};
Кажется, что предложения let не работают внутри анонимного типа, и я не уверен, что добавить к последнему предложению from.
Может кто-нибудьпожалуйста, помогите?