我试图包含第二个 foreach 循环来从对象内的列表中提取值,但在尝试执行此操作时遇到问题。
这是代码
private List<Opportunity> CreateOpportunities(Basket basket)
{
var opps = new List<Opportunity>();
foreach (var orderLine in basket.OrderLines)
{
opps.Add(new Opportunity()
**{**
DelegateList = new Delegates
{
foreach (var delegates in orderLine.DelegatesList)
{
FirstName = delegates.FirstName,
LastName = delegates.LastName,
Email = delegates.Email
}
},
CourseId = new CourseBooking
{
Id = orderLine.CourseId
},
Quantity = orderLine.Quantity,
EventId = new EventBooking
{
Id = orderLine.EventId
},
EventItemDecimalPrice = orderLine.Price,
TaxType = new TaxType
{
Id = 1,
Name = "UK VAT",
Rate = orderLine.VatRate
},
RegionCode = orderLine.RegionId
});
}
return opps;
}
我需要实现的是 foreach 在每个 orderLine 中循环,然后在该 orderLine 中有一个列表类和一个 foreach 来循环它,拉出值并针对 FirstName、LastName 和 Email 进行声明
目前它不允许我创建 foreach 并收到警告说它需要一个 ;或 foreach 之前的 } 。 任何帮助都会很棒。
编辑:委托(delegate)构造函数:
public class Delegates
{
[JsonProperty("first_name")]
public string FirstName { get; set; }
[JsonProperty("last_name")]
public string LastName { get; set; }
[JsonProperty("email")]
public string Email { get; set; }
}
编辑:机会(DelegateList 类)
public class Opportunity
{
[JsonProperty("event")]
public EventBooking EventId { get; set; }
[JsonProperty("course")]
public CourseBooking CourseId { get; set; }
public int Quantity { get; set; }
/// <summary>
/// This is the price per person, NOT the total of the opportunity
/// </summary>
[JsonProperty("price")]
public decimal EventItemDecimalPrice { get; set; }
[JsonProperty("tax_type")]
public TaxType TaxType { get; set; }
[JsonIgnore]
public string RegionCode { get; set; }
[JsonProperty("delegates")]
public List<Delegates> DelegateList { get; set; }
}
最佳答案
我认为问题是你在对象初始化中放置了一个for-each
循环。您应该在初始化 DelegateList
之前移动内部 for-each
循环。类似的东西-
foreach (var orderLine in basket.OrderLines)
{
var firstName;
var lastName;
var email;
List<DelegateList> delegates = new List<DelegateList>();
foreach (var delegates in orderLine.DelegatesList)
{
delegates.Add(new Delegates{firstName = delegates.FirstName,lastName = delegates.LastName,email = delegates.Email});
}
opps.Add(new Opportunity()
{//...
然后使用内部循环中上面填充的列表初始化 DelegateList
-
DelegateList = delegates;
关于c# - C# 中的 ForEach 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50230667/