我有一个名为“员工”的共享点列表。我有以下列:
- 标题
- 名
- 姓
- 乐队1
- 带2
- 乐队3
- 带4
我有 20 个波段列,但为了更好地解释问题,我只包含了 4 个波段列。我知道如何从特定列中获取数据,但我该如何进行以下操作:
- 仅从上面的列表中获取“Band”列的总数
- 循环遍历每个“波段”列并获取/显示每个波段中的项目/值
我的第一个虽然它有一个循环遍历所有波段列,然后在其中有一个循环来获取/显示每个波段内的每个项目/值,但我不完全确定如何去做
任何想法或建议将不胜感激,
谢谢,
我有一个名为“员工”的共享点列表。我有以下列:
我有 20 个波段列,但为了更好地解释问题,我只包含了 4 个波段列。我知道如何从特定列中获取数据,但我该如何进行以下操作:
我的第一个虽然它有一个循环遍历所有波段列,然后在其中有一个循环来获取/显示每个波段内的每个项目/值,但我不完全确定如何去做
任何想法或建议将不胜感激,
谢谢,
要获得所有乐队字段,我会做类似的事情
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]]);
}
}