亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

LINQ 投影運(yùn)算符 Select,SelectMany

LINQ中有兩個(gè)可用的投影運(yùn)算符。1)Select  2)SelectMany

Select

Select運(yùn)算符始終返回IEnumerable集合,該集合包含基于轉(zhuǎn)換函數(shù)的元素。它類(lèi)似于產(chǎn)生平面結(jié)果集的SQL的Select子句。

現(xiàn)在,讓我們了解使用以下Student類(lèi)的Select查詢(xún)運(yùn)算符。

public class Student{ 
    public int StudentID { get; set; }
    public string StudentName { get; set; }    
    public int Age { get; set; }
}

在查詢(xún)語(yǔ)法中的Select

LINQ查詢(xún)語(yǔ)法必須以Select GroupBy子句結(jié)尾。下面的示例演示了Select 運(yùn)算符,該運(yùn)算符返回StudentName的字符串集合。

IList<Student> studentList = new List<Student>() { 
    new Student() { StudentID = 1, StudentName = "John" },
    new Student() { StudentID = 2, StudentName = "Moin" },
    new Student() { StudentID = 3, StudentName = "Bill" },
    new Student() { StudentID = 4, StudentName = "Ram" },
    new Student() { StudentID = 5, StudentName = "Ron" } 
};

var selectResult = from s in studentList
                   select s.StudentName;

選擇運(yùn)算符可用于根據(jù)我們的要求制定結(jié)果。它可用于返回自定義類(lèi)或匿名類(lèi)型的集合,其中包括根據(jù)我們的需要的屬性。

下面的select子句示例返回一個(gè)包含Name和Age屬性的匿名類(lèi)型的集合。

IList<Student> studentList = new List<Student>() { 
    new Student() { StudentID = 1, StudentName = "John", Age = 13 } ,
    new Student() { StudentID = 2, StudentName = "Moin",  Age = 21 } ,
    new Student() { StudentID = 3, StudentName = "Bill",  Age = 18 } ,
    new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 } ,
    new Student() { StudentID = 5, StudentName = "Ron" , Age = 15 } 
};

// 返回具有Name和Age屬性的匿名對(duì)象的集合
var selectResult = from s in studentList
                   select new { Name = "Mr. " + s.StudentName, Age = s.Age }; 

// 迭代selectResult
foreach (var item in selectResult)
    Console.WriteLine("Student Name: {0}, Age: {1}", item.Name, item.Age);
Dim selectResult = From s In studentList
                   Select New With {.Name = s.StudentName, .Age = s.Age}

輸出:

Student Name: Mr. John, Age: 13
Student Name: Mr. Moin, Age: 21
Student Name: Mr. Bill, Age: 18
Student Name: Mr. Ram, Age: 20
Student Name: Mr. Ron, Age: 15

在方法語(yǔ)法中Select

Select運(yùn)算符在方法語(yǔ)法中是可選的。但是,您可以使用它來(lái)塑造數(shù)據(jù)。在以下示例中,Select擴(kuò)展方法返回具有Name和Age屬性的匿名對(duì)象的集合:

示例:C#在方法語(yǔ)法中的Select

IList<Student> studentList = new List<Student>() { 
    new Student() { StudentID = 1, StudentName = "John", Age = 18 } ,
    new Student() { StudentID = 2, StudentName = "Moin",  Age = 21 } ,
    new Student() { StudentID = 3, StudentName = "Bill",  Age = 18 } ,
    new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 } ,
    new Student() { StudentID = 5, StudentName = "Ron" , Age = 21 } 
};
    
var selectResult = studentList.Select(s => new { Name = s.StudentName , 
                                                 Age = s.Age  });

在上面的示例中,selectResult將包含具有Name和Age屬性的匿名對(duì)象,如下面的調(diào)試視圖所示。

Select子句返回一個(gè)匿名對(duì)象
示例:VB.Net中在方法語(yǔ)法Select
Dim selectResult = studentList.Select(Function(s) New With {.Name = s.StudentName,
                                                            .Age = s.Age})

SelectMany

SelectMany 運(yùn)算符投射基于轉(zhuǎn)換函數(shù)的值序列,然后將它們扁平化為一個(gè)序列。