Linq C# 中的 Select 与 SelectMany 有什么不同?
选择运算符为每个源生成一个结果值,SelectMany 运算符属于投影运算符范畴。它用于将序列的每个元素投影到一个 IEnumerable,并将结果序列展平为一个序列。
示例
class Demo{
public string Name { get; set; }
public List<string> Contents { get; set; }
public static List<Demo>GetAllContents(){
List<Demo> listContents = new List<Demo>{
new Demo{
Name = "Cap",
Contents = new List<string> { "Nike", "Adidas" }
},
new Demo{
Name = "Shoes",
Contents = new List<string> { "Nike", "Puma", "Adidas" }
},
};
return listContents;
}
}
class Program{
static void Main(){
IEnumerable<List<string>> result = Demo.GetAllContents().Select(s => s.Contents);
foreach (List<string> stringList in result){
foreach (string str in stringList){
Console.WriteLine(str);
}
}
Console.WriteLine("---Select Many---")
IEnumerable<string> resultSelectMany = Demo.GetAllContents().SelectMany(s => s.Contents);
foreach (string str in resultSelectMany){
Console.WriteLine(str);
}
Console.ReadKey();
}
}输出
Nike Adidas Nike Puma Adidas ---Select Many--- Nike Adidas Nike Puma Adidas
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP