1

我在 ac# web 服务中有一个 web 方法,它创建三个列表,这些列表是从 xml 输入中填充的。我想将这三个列表组合成一个实体(最好使用数据集,因为使用此 Web 服务的 iOS 应用程序已经编程为接受和解析数据集),并从 Web 方法返回它们。

这是目前我的代码的样子:

[WebMethod]
public DataSet SelectObjects(string ExternalID, string Password)
{
     DataSet ds = new DataSet();

     MembershipAuthServiceReference.MembershipAuthenticationService objService = new MembershipAuthServiceReference.MembershipAuthenticationService();
     MembershipAuthServiceReference.SoapHeaderCredentials objSoapHeader = new MembershipAuthServiceReference.SoapHeaderCredentials();
     MembershipAuthServiceReference.MemberUserInfo objMemberInfo = new MembershipAuthServiceReference.MemberUserInfo();

     try
     {
         objSoapHeader.UserName = ExternalID;
         objSoapHeader.Password = Password;

         objMemberInfo = objService.GetMembershipInfo();

         List<Obj1> ListObj1 = new List<Obj1>();

         for (int i = 0; i < objMemberInfo.Obj1.Length; i++)
         {
             Obj1 obj_Obj1 = new Obj1();
             obj_Obj1.Stuff = objMemberInfo.Obj1[i].Stuff.ToString();
             ListObj1.Add(obj_Obj1);
         }

         List<Obj2> ListObj2 = new List<Obj2>();

         for (int i = 0; i < objMemberInfo.Obj2.Length; i++)
         {
             Obj2 obj_Obj2 = new Obj2();
             obj_Obj2.Stuff = objMemberInfo.Obj2[i].Stuff.ToString();
             ListObj2.Add(obj_Obj2);
         }

         List<Obj3> ListObj3 = new List<Obj3>();

         for (int i = 0; i < objMemberInfo.Obj3.Length; i++)
         {
             Obj3 obj_Obj3 = new Obj3();
             obj_Obj3.Stuff = objMemberInfo.Obj3[i].Stuff.ToString();
             ListObj3.Add(obj_Obj3);
         }

     }
     catch (Exception ex)
     {
         string sError;
         sError = ex.Message.ToString();
     }
     return ds;

}

如何将这些列表组合成一个数据集?我假设有可能吗?如果没有,是否有可行的替代方案来做同样的事情?

4

1 回答 1

1

首先连接您的列表,如下所示,然后使用链接生成数据集

 var combinedList= ListObj1.Concat(ListObj2).Concat(ListObj3); 

如何将 List<T> 转换为 DataSet?

于 2013-08-23T16:55:44.480 回答