0

私の要件は、LINQを使用してSharePointリスト内のカスタム列からのみアイテムを取得することです。

カスタム列は、別のSPListで実行された計算に基づいて動的に作成されるため、カウントが頻繁に増減し続けるため、SPMetalを使用できません。

次のクエリでアイテムがカスタムフィールドからのみ取得されているかどうかを確認するために、条件(!(SPBuiltInFieldId.Contains(field.Id)))を含める必要があります。

List<SPListItem> AllResponses = (from SPListItem Response in oList.Items
                                select Response).ToList();

ご意見をお聞かせください。ありがとう!

4

1 に答える 1

0

カスタム列のみを含むリスト アイテムを作成できるかどうかはわかりません。Title がなくても、ID、Modified、Created などがあります。さらに、多数の非表示の組み込み列があります。

カスタム フィールドを持つアイテムを含むアイテムのリストが必要な場合は、WhereメソッドとAnyメソッドを利用する次のようなものを試すことができます。

List<SPListItem> AllResponses = 
    (from SPListItem Response in oList.Items select Response)
    .Where(item => item.Fields
        .Cast<SPField>()
        .Any(field => !SPBuiltInFieldId.Contains(field.Id)))
    .ToList();

これにより、少なくとも 1 つのカスタム フィールドを持つすべてのアイテムが返されます。

于 2012-06-27T19:32:12.083 に答える