DataTable dtTestItem = Govaze.SQLServerDAL.Factory.getDataXmlDAL().ProcDataTable("<root><Type>SYXM</Type><KeyWord>金属检测</KeyWord></root>", "DataXmlProject");
DataRow[] drS = dtTestItem.Select("ObjectName = '涡流' or ObjectName = '金相'");
foreach (DataRow dr in drS)
{
dtTestItem.Rows.Remove(dr);
}
就是将DataTable转换成DataRow数组
var rows = dtTestItem.Rows.Cast<DataRow>();
string[] ObjectNames = rows.Select(d => d.Field<string>("ObjectName")).Skip(0).Take(4).ToArray();
List<Emplayee> emplayeeList = GetEmplayeeList(); //获取员工信息列表
int[] empIds = emplayeeList.Select(a => a.Id).ToArray(); //获取员工编号数组
Skip()和Take()方法都是IEnumerable<T> 接口的扩展方法,包括C#中的所有Collections类,如ArrayList,Queue,Stack等等,还有数组和字符串都可以调用这两个方法。
List<int> list=new List<int>(){1,2,3,4,5,6,7,8,9};
list.Skip(4) =56789
list.Take(2)=12
Skip是跳过几个数字,Take是从第几个开始
var
list =
new
List<
int
>();
//比如 list里面是 1,2,3,4,5,6,7,8,9,10
var
result = list.Skip(2);
//返回值就是 3,4,5,6,7,8,9,10;
var
result = list.Take(2);
//返回值就是 1,2
//搭配使用,一般用来分页
var
result = list.Skip(2).Take(2);
//返回值 3,4
var p = wordDoc.InsertParagraph("□" + String.Join(" □", ObjectNames));
for (int n = 1; n <= (dtTestItem.Rows.Count / 4); n++)
{
ObjectNames = rows.Select(d => d.Field<string>("ObjectName")) .Skip(n * 4).Take(4).ToArray();
p.AppendLine("□" + String.Join(" □", ObjectNames));
}
linq中的cast<T>()及OfType<T>()
DataTable dt=...........
//获取从数据库中取出的数据(假设只有一条记录)
//Cast<T>()用来将非泛型的序列转换为泛型的序列
DataRow row=dt.Rows.Cast<DataRow>().Single();
//OfType<T>():用来将序列中可以转换的转换为指定的序列
如:一个
object
数组中有整数和字符串,现在想找出其中最大的数
object
[] obj = {1,23,4,5,555,
"aaa"
,
"bbb"
};
int
max=obj.OfType<
int
>().Max();
这样就不会抛出异常