要獲得全部頻段的領域,我會做這樣的事情
var fieldLookup = mySpList.Fields.Cast<SPField>()
.Where(f => f.Title.StartsWith("Band"))
.Select(f => {
int bandNo;
bool successful = int.TryParse(f.Title.Substring(4), out bandNo);
return new { Id = f.Id, BandNo = bandNo, Success = successful };
})
.Where(a => a.Success)
.ToDictionary(a => a.BandNo, a => a.Id);
這應該給你一個Dictionary<int, Guid>
映射的帶號從列標題到該字段的ID。
然後,您可以使用這些ID來獲取值。例如,你可以建立<FieldRef>
元素的列表傳遞到SPQuery
,或者你可以做
foreach (SPListItem item in myList.Items)
{
Console.WriteLine("Item {0}", item.Title);
foreach(int bandNo in fieldLookup.Keys)
{
Console.WriteLine("Band {0}: {1}", bandNo, item[fieldLookup[bandNo]]);
}
}
感謝您的幫助Rawling,這看起來很有希望,現在我會嘗試了這一點。 – 2012-08-07 11:21:40