1

SharePoint から 2 つの値を返す Web サービスを作成しましたが、メソッドの戻り値の型として DataTable を使用できませんでした。

このメソッドが 2 つの差分値 (差分データ型) を返すようにするにはどうすればよいList<>ですか?

[WebMethod(EnableSession=true, Description=" Get All sites in the Site Collection.")]
public List<string> GetAllSites(string InputSitecollectionUrl)
{
    List<string> w = new List<string>();
    using (SPSite TargetsiteCollection = new SPSite(InputSitecollectionUrl))
    {
        SPWebCollection allWebs = TargetsiteCollection.AllWebs;
        foreach (SPWeb web in allWebs)
        {
            string WebUrl = web.Url;
            string WebTitle = web.Title;

            w.Add(WebUrl);
            w.Add(WebTitle);
        }
    }
    return w;
}
4

2 に答える 2

2

a を返すのではなく、List<string>おそらく a を使用したいと思うでしょう。List<KeyValuePair<T1, T2>>

var w = new List<KeyValuePair<string, string>>();
foreach (SPWeb web in allWebs)
{
    w.Add(new KeyValuePair<string, string>(web.Url, web.Title));
}

return w;

KeyValuePair タイプの制約で、ニーズに合ったタイプを指定できます。

于 2012-05-23T20:00:11.447 に答える
0
DataSet set = new DataSet("sites");
        DataTable table1 = new DataTable("site");
        table1.Columns.Add("SiteUrl");
        table1.Columns.Add("SiteTitle");

        // Create a DataSet and put both tables in it.
        using (SPSite TargetsiteCollection = new SPSite(InputSitecollectionUrl))
        {
            SPWebCollection allWebs = TargetsiteCollection.AllWebs;
            foreach (SPWeb web in allWebs)
            {
                string WebUrl = web.Url;
                string WebTitle = web.Title;
                table1.Rows.Add(WebUrl, WebTitle);
            }
            set.Tables.Add(table1);

        }
        return set;
于 2012-05-27T14:11:48.497 に答える