我有DTO类定义订单行,如下所示:
public class Line
{
public string Sku { get; set; }
public int Qty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Line填充类型列表如下:
List<Line> myLines = new List<Line>();
myLines.Add(new Line() { Sku = "ABCD1", Qty = 1 });
myLines.Add(new Line() { Sku = "ABCD2", Qty = 1 });
myLines.Add(new Line() { Sku = "ABCD3", Qty = 1 });
Run Code Online (Sandbox Code Playgroud)
我想要的是使用LINQ从myLines列表中获取一系列SKU .我怎么能这样做呢?
我目前正在手动这样做...
// Get SKU List
List<string> mySKUs = new List<string>();
foreach (Line myLine in myLines)
mySKUs.Add(myLine.Sku);
string[] mySKUsArray = mySKUs.ToArray();
Run Code Online (Sandbox Code Playgroud)
提前致谢.我试图谷歌寻求解决方案,但我不确定如何说出问题...
PS使用LINQ方法实现我目前正在做的事情有没有任何好处/性能提升foreach?
Ree*_*sey 67
您可以使用:
var mySKUs = myLines.Select(l => l.Sku).ToList();
Run Code Online (Sandbox Code Playgroud)
的Select方法,在这种情况下,执行从一个映射IEnumerable<Line>到IEnumerable<string>(在SKU),然后ToList()将其转换为一个List<string>.
请注意,这需要using System.Linq;位于.cs文件的顶部.
这在 LinQ 中非常简单...您可以使用 select 语句来获取对象属性的 Enumerable。
var mySkus = myLines.Select(x => x.Sku);
Run Code Online (Sandbox Code Playgroud)
或者,如果你想要它作为数组,只需......
var mySkus = myLines.Select(x => x.Sku).ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95879 次 |
| 最近记录: |