请问如何把DataTable转换为System.Collections.IList?谢谢您!

解决方案 »

  1.   

    怎么个转换方法啊?IList什么都可以放啊。
      

  2.   

    楼主是想在IList中保存一行一行的数据吧?foreach(DataRow dr in dt.Rows)
    {
    lst.Add(dr);
    }
      

  3.   

    return (System.Collection.IList)dataTable1.DefaultView;DataTable 实现 IListSource,
    DataView 实现 IList,所以不妨直接使用 DataTable.DefaultView 来获得一个已经是IList类型的 DataView 对象
      

  4.   

    …… Collections, 我漏了一个s
      

  5.   

    public IList GetLisByID()
    {
    DataTable dt=new DataTable();
    ArrayList list=new ArrayList();
    if(dtRows.Count>0)
    {
    for(int i=0;i<dt.Rows.Count;i++)
    {
    ListItem listitem = new ListItem(dt.Rows[i]["name"].ToString(),dt["ID"].ToString());
    list.Add(listitem);
    }
    }
    return list;
    }
      

  6.   

    public IList GetLisByID()
    {
    DataTable dt=new DataTable();
    ArrayList list=new ArrayList();
    if(dtRows.Count>0)
    {
    for(int i=0;i<dt.Rows.Count;i++)
    {
    ListItem listitem = new ListItem(dt.Rows[i]["name"].ToString(),dt.Rows[i]["ID"].ToString());
    list.Add(listitem);
    }
    }
    return list;
    }
      

  7.   

    不知道为什么,用
    foreach (DataRow dr in dt.Rows)
                    {
                        il.Add(dr);
                    }
    会引发异常:
               Object reference not set to an instance of an object.
      

  8.   

    to MyLf(不睡觉的鱼) :
      那要怎么做才可以呢?
      

  9.   

    我在代码中有声明的:
      IList il=null;
    接下来才是
    foreach (DataRow dr in dt.Rows)
    {
    il.Add(dr);
    }
      

  10.   

    上面的for不就可以实现了吗,如果一定要用foreach那就如下public IList GetLisByID()
    {
    DataTable dt=new DataTable();
    ArrayList list=new ArrayList();
    for(DataRow dr in dt.Rows)
    {
    ListItem listitem = new ListItem(dr["name"].ToString(),dr["ID"].ToString());
    list.Add(listitem);
    }
    return list;
    }
      

  11.   

    只有将其指向实现IList的对像就行了。刚刚看到你可以将DataTable的DataView转换为IList啊,因为DataView实现了IList
      

  12.   

    MyLf(不睡觉的鱼) >> 我上面不就说了……