【发布时间】:2017-11-11 19:16:54
【问题描述】:
我需要将VB.NET 应用程序转换为C#。项目有以下几行:
inTrip.Stops.AddRange(trip.Stops)
inTrip.Stops.ForEach(Sub(s) s.Trip = inTrip)
但我不清楚它的作用,所以我无法转换它。这些行的C# 的正确代码是什么?
编辑
据我了解,应该是这样的:
foreach (var item in trip.Stops)
{
var item_db = mapper.Map<TripStop>(item);
inTrip.TripStops.Add(item_db);
}
foreach (var item in inTrip.TripStops)
{
item.Trip = inTrip;
}
但是这些循环引用(inTrip 有 TripStops 的集合,并且对于集合的每个元素又设置了 Trip 元素)让我感到困惑
【问题讨论】:
-
我不是 VB.NET 程序员。然而我可以很容易地阅读。第一行将一个集合添加到另一个集合。第二行使用 lambda 表达式循环遍历集合,并将值分配给集合中项的属性。 C# 几乎完全相同。我想你可以解决这个问题。
-
很简单。只需在两行末尾添加分号,然后将
Sub(s)更改为s => -
它看到它非常简单。但是我收到一个错误:“ICollection
”不包含“AddRange”的定义,并且没有扩展方法“AddRange”接受“ICollection ”和“ICollection ”类型的第一个参数不包含“ForEach”的定义,并且找不到接受“ICollection ”类型的第一个参数的扩展方法“ForEach”(您是否缺少 using 指令或程序集引用?) -
你真的自己尝试过something吗?
-
@AlexB.,我把整个项目从 VB.NET 移到了 C#,但是这些字符串让我很困惑......