2014-09-25 144 views
0

這裏的上下文是,我想看到一個對象在SharePoint列表中的權限。 但問題與C有關#c#遍歷對象成員

Sharepoint有一個對象叫做SPListItem,你可以通過迭代它的索引來查看關於該對象的各種細節。

我能夠通過使用整數(splistitem[i])遍歷SPListItem索引。但問題是我不知道我的程序打印出來的屬性/細節。

如何打印索引名稱和索引值?

這裏是我的代碼

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Collections; 
using System; 
using Microsoft.SharePoint; 

namespace Test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("-----"); 
      using (SPSite site = new SPSite("http://c4968397007/sites/anupamsworkspace/")) 
      { 
       using (SPWeb web = site.OpenWeb()) 
       { 
        SPList oSPList = web.Lists["Check2"]; 
        SPListItem oSPListItem = oSPList.Items[0]; 

        for (int i = 0; i < 100;i++) 
         //printing out the index value using int index, how do I print the name of the value it's printing out ? 
         Console.WriteLine(oSPListItem[i]); 
       } 
      } 
      Console.ReadLine(); 
     } 
    } 
} 

回答

0

這應該做的伎倆:

using (SPSite site = new SPSite("http://c4968397007/sites/anupamsworkspace/")) 
{ 
    using (SPWeb web = site.OpenWeb()) 
    { 
     var list = web.Lists["Check2"]; 
     var item = list.Items[0]; 
     foreach (var field in list.Fields) 
     { 
      Console.WriteLine("Key: {0} Value: {1}", field.StaticName, item[field.StaticName]) 
     } 
    } 
} 

問候, 馬丁

+0

感謝您的回覆martin,但visualstudio抱怨說「對象不包含StaticName的定義」。任何解決它的方法? – 2014-09-26 17:05:32

+0

這很奇怪,字段應該是一個帶有StaticName屬性的SPField對象(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfield.staticname(v=office.15).aspx)。 將foreach語句更改爲:foreach(list.Fields中的SPField字段) – 2014-09-29 20:02:45

0

您可以使用下面的方法

using (SPWeb web = site.OpenWeb()) 
      { 
       SPList list = web.GetList("Check2"); 
       if (list.ItemCount > 0) 
       { 
        SPListItem item = list.Items[0]; 
        Hashtable ht = item.Properties; 
        foreach (DictionaryEntry de in ht) 
        Console.WriteLine("Key: {0} Value: {1}", de.Key, de.Value); 
       } 
      } 
} 
+0

我不只需要'item.pro perties'我需要打印所有索引......其中約有75個 – 2014-09-26 03:05:15