LINQ 步步学-LINQ to Object(2)

作者:vkvi 来源:ITPOW(原创) 日期:2009-8-20

返回时创建对象

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>");
}

上述先把 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>");
}

使用 {},具体请参见 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>");
}

注意 orderby 是连在一起的,而不是 order by;还有等于判断是“==”,而不是“=”。您可能会说 descending 多难写啊,不如 SQL 的 desc,其实不必担心,Visual Web Developer 和 Visual Studio 都有智能提示的。

相关文章