1

我从 SharePoint 创建了一个 Web 服务以返回两个值,但我无法使用 DataTable 作为该方法的返回类型。

如何使此方法在 a 中返回两个差异值(差异数据类型)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

而不是返回 aList<string>你可能想要使用 aList<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 回答