返回时创建对象
string[] files = System.IO.Directory.GetFiles("C://");
var fis = from file in files
select new System.IO.FileInfo(file);
foreach (var fi in fis)
{
Response.Write(fi.Name + " " + fi.CreationTime.ToString() + "<br>");
}
var fis = from file in files
select new System.IO.FileInfo(file);
foreach (var fi in fis)
{
Response.Write(fi.Name + " " + fi.CreationTime.ToString() + "<br>");
}
上述先把 C:// 下的文件放到 files 字符串数组中,然后在 LINQ 查询时,将其“包装”成 FileInfo 对象。注意这里使用了 var 。
返回时创建匿名类型
int[] arr = new int[] { 5, 1, 9, 3, 4, 0, 8 };
var m = from item in arr
select new { a = item, b = item + 1 };
foreach (var item in m)
{
Response.Write(item.b.ToString() + "<br>");
}
var m = from item in arr
select new { a = item, b = item + 1 };
foreach (var item in m)
{
Response.Write(item.b.ToString() + "<br>");
}
使用 {},具体请参见 C# 3.0 -匿名类型 。
使用 where、orderby
int[] arr = new int[] { 5, 1, 9, 3, 4, 0, 8 };
var m = from item in arr
where item > 3
orderby item descending
select item;
foreach (var item in m)
{
Response.Write(item.ToString() + "<br>");
}
var m = from item in arr
where item > 3
orderby item descending
select item;
foreach (var item in m)
{
Response.Write(item.ToString() + "<br>");
}
注意 orderby 是连在一起的,而不是 order by;还有等于判断是“==”,而不是“=”。您可能会说 descending 多难写啊,不如 SQL 的 desc,其实不必担心,Visual Web Developer 和 Visual Studio 都有智能提示的。