方法A: 
public static Region[] GetRegions()
        {
            return new Region[]
            {
                new Region("Northeast"),
                new Region("Midwest")
            };
        }  怎么实现方法B:
public static Region[] GetRegions(DataTable table)
        { 
        //    return new Region[]
        //    {
         //       new Region("Northeast"),
        //        new Region("Midwest")
        //    };      Region[] region=new Region ; 
            foreach (string dr in data.MarketTreeTable.Rows)
            {
             //   new Region(dr["instmntCode"]);
            }
        return   region;
        } 用LINQ怎么写呢?

解决方案 »

  1.   

    重新new一个,或者用list转为array
      

  2.   

    楼主好,public static Region[] GetRegions()
            {
                return new Region[]
                {
                    new Region("Northeast"),
                    new Region("Midwest")
                };
            }Region 是一个类,简单的想用foreach方法实现
    public static Region[] GetRegions(DataTable table)
            {  
          Region[] region; 
                foreach (string dr in data.MarketTreeTable.Rows)
                {
           // 这里怎么实现呢? 
                 // new Region(dr[0]);
              }
            return   region;
            }
     
      

  3.   


    List<DataRow> list=new List<DataRow>();
     foreach (string dr in data.MarketTreeTable.Rows)
    {
       list.Add(dr);
    }
    return list.ToArray();
      

  4.   


    List<DataRow> list=new List<DataRow>();
     foreach (string dr in data.MarketTreeTable.Rows)
    {
       list.Add(dr);
    }
    return list.ToArray();这个是返回数组对像
    相似于
     var   region1 = data.MarketListTable.AsEnumerable().Select(d => d.Field<string>("instmntCode")).ToList<string>();但不并不是Region[] ,如何更改呢?
              
      

  5.   

    List<Region>list
    list里面放Region类型,最后ToArray得到的就是Region[]
      

  6.   

    Region[] array=(from t in data.MarketTreeTable
                   select new Region
                   {
                     //给属性赋值
                        A=T.a,
                      B=T.b
                    }).ToArray();
      

  7.   

    Region[] array=(from t in data.MarketTreeTable
                   select new Region
                   {
                     //给属性赋值
                        A=T.a,
                      B=T.b
                    }).ToArray你好,这个不太明白,
    但是我只是想在 Region[] ,放入 new Region("XX" )对像,用for, foreach都能实现,用LINQ呢,基础不好,多指教,
      

  8.   


    from t in dataSource
    select new Region
    {
     
    }
    这是使用Linq,select方式,在Linq中称为投影
    from .. in ..的返回值是IEnumerable<T> 使用ToArray().
      

  9.   

    这段代码已经帮你foreach了,他会把这个数据源的每一行DataRow都读一遍放到你的Region[]
      

  10.   

    IEnumerator<Region> GetRegions()
    {
        foreach (string dr in data.MarketTreeTable.Rows)
        {
            yield return new Region(dr(0));
        }
    }
      

  11.   

    多谢各位,楼主好,多谢。
    贴出Region class method:
    public class Region
        {
            public Region(string regionName)
            {
                this.RegionName = regionName;
            }
             
        }
    linq 如下:
    Region[] array = (from t in data.MarketTreeTable.AsEnumerable()
                                       select new Region(t[1].ToString (),t[0].ToString ())
                                       {
                                       }
                                       ).ToArray();
      

  12.   

    为啥要那么麻烦呀?不是一句话吗?table.Rows.OfType<DataRow>().Select(row => new Region(row)).ToArray()
      

  13.   


    楼主好,再请问下面linq:
    Region[] region= table.Rows.OfType<DataRow>().Select(row => new Region(row[0].ToString())).ToArray() table row[0] 中有重复的数据,我怎么只添加唯一的数据到Region[] region中呢?
    请教/
      

  14.   


    楼主好,再请问下面linq:
    Region[] region= table.Rows.OfType<DataRow>().Select(row => new Region(row[0].ToString())).ToArray() table row[0] 中有重复的数据,我怎么只添加唯一的数据到Region[] region中呢?
    请教/
      

  15.   

    OfType 方法后,调用一下 distinct 方法即可