一、准備工作
引入linq和data 相關的using命名空間
DataTable dt=new DataTable();//dt的來源可以是多個地方,比如:數據庫,Excel等等。我這里使用Excel.
二、獲取DataTable的列名及數據類型的方法
有了這個方法就不必考慮來源中的列名和數據類型,這里就可以查找到。
foreach (DataColumn dc in dt.Columns)//獲取DataTable中的列名,這里的dt由於是從Excel導入所有列名為:F1,F2,F3,F4... { MessageBox.Show(string.Format("列名:{0} ,數據類型:{1}", dc.ColumnName, dc.DataType)); }
三、進行linq獲取操作
這里獲取到的東西我們存到一個List里面。
List<string> s = (from a in dt.AsEnumerable()//每次用Linq來操作集合的時候都會用到AsQueryable()和AsEnumerable(),下面我們講區別 select a.Field<string>("F2")).ToList<string>();//這里的“F2”就是列名 foreach (var item in s) { MessageBox.Show("Test:" + item.ToString());//讀取結果顯示 }
四、AsQueryable()和AsEnumerable()的區別?
區別就大了 AsEnumerable() 是 LINQ TO OBJECT
AsQueryable 是 LINQ TO SQL