如何以方法语法形式执行此操作:
foreach (var o in orders
.SelectMany(o => o.OrderItems, (o, oi) => new {<<idk what to put here>> })
.Where(oi => oi.ProductName == "Widget"))
{
Console.WriteLine("WIDGET: {0}", o.OrderID);
}
尝试了这个但没有工作:
foreach (var o in orders
.SelectMany(o => o.OrderItems, (o, oi) => new { o.OrderID, oi.ProductName })
.Where(oi => oi.ProductName == "Widgets"))
{
Console.WriteLine("{0}", o.OrderID);
}
最后我使用了这段代码并且它有效!
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_add_cg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:elevation="10dp"
app:borderWidth="0dp"
app:backgroundTint="@color/blue_4a90e2"
android:src="@drawable/addbutton"/>
答案 0 :(得分:4)
方法语法将是这样的:
orders.Where(o=>o.OrderItems.Any(oi=>oi.ProductName == "Widgets")).Select(o=>o.OrderID)
答案 1 :(得分:1)
这是您问题的解决方案。 你应该使用这样的东西:
foreach (var item in orders.SelectMany(x => x.OrderItems).Where(y => y.ProductName == "Widgets"))
{
Console.WriteLine("{0}", item.OrderId);
}
我为您的问题创建了一个工作示例:Click Here
希望这能解决您的问题。谢谢!