none
把数组赋值给对象,怎么写 RRS feed

答案

  • 我是这么写的:

         List<HisInfmt> lisHis = new List<HisInfmt>();
                foreach (object[] t in myList)
                {
                    HisInfmt info = new HisInfmt();
                    PropertyInfo[] propList = typeof(HisInfmt).GetProperties();
                    int i = 0;
                //    propList.ToList().ForEach(p=>{
    
                //        p.SetValue(info,t[i],null);
                //        i++;
                //        lisHis.Add(info);
                //});
                    foreach (PropertyInfo inft in propList.ToList()) {
                        inft.SetValue(info, t[i], null);
                        i++;
                      
                    }
                    lisHis.Add(info);
                    
                }


    please verify my account

    2016年12月21日 0:57

全部回复

  • 2016年12月12日 3:57
    版主
  • 参考

    1

    string[] astrTest = new string[5];

    astrTest[0] = "One";

    astrTest[1] = "One";

    astrTest[2] = "One";

    astrTest[3] = "One";

    astrTest[4] = "One";

    List<string> lstTest = new List<string>(astrTest);

    2

    string[] newArray = new string[list.Count];
    newArray=.....
    List<string>  list=new List<string>();
    list.InsertRange(0, array);

    将上面例子中的string换成object是一样的写法。

    3 集合有扩展方法,直接调用方法ToList() (有泛型版本)


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年12月12日 4:35
  • Hi,

    下面这段代码就是array 到 list 的转换,你可以仿照这个例子来写。

    int[] ints = new [] { 10, 20, 10, 34, 113 };
    
    List<int> lst = ints.OfType<int>().ToList(); // this isn't going to be fast.

    上面的代码测试是ok的,你也可以参考下面的代码。

    List<object> list = myArray.Cast<Object>().ToList();

    希望我的回复对你有帮助。

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年12月12日 8:48
    版主
  • 感觉他们写的好麻烦啊。。其实很简单:

    用一个addRange方法就行了。
    int[ ] aa = new int[ ] { 1 , 2 , 3 };
     List<int> bb = new List<int>( );
     bb.AddRange( aa );

    在C#里 数组也是一个对象的 所以是可以直接加到集合里

    2016年12月13日 7:05
  • 我是这么写的:

         List<HisInfmt> lisHis = new List<HisInfmt>();
                foreach (object[] t in myList)
                {
                    HisInfmt info = new HisInfmt();
                    PropertyInfo[] propList = typeof(HisInfmt).GetProperties();
                    int i = 0;
                //    propList.ToList().ForEach(p=>{
    
                //        p.SetValue(info,t[i],null);
                //        i++;
                //        lisHis.Add(info);
                //});
                    foreach (PropertyInfo inft in propList.ToList()) {
                        inft.SetValue(info, t[i], null);
                        i++;
                      
                    }
                    lisHis.Add(info);
                    
                }


    please verify my account

    2016年12月21日 0:57