【发布时间】:2015-03-19 06:21:36
【问题描述】:
我发现这很难理解以及从哪里开始,所以我希望有人能够指出正确的方向。我有一个列表(客户),其中有数组/列表。基本上我想将列表的所有结果扁平化为扁平版本。
public class Customer : EntityBase
{
public Phonenumber[] PhoneNumbers { get; set; }
public Contact BillToContact { get; set; }
public Terms Terms { get; set; }
}
public class Contact
{
public Phonenumber[] PhoneNumbers { get; set; }
public Address Address { get; set; }
public Key Key { get; set; }
public string CompanyName { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
}
public class Phonenumber
{
public string Number { get; set; }
public int Key { get; set; }
}
public class Terms
{
public int DueDays { get; set; }
public int DiscountDays { get; set; }
}
public class Address
{
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string Country { get; set; }
}
public abstract class EntityBase
{
public Guid Id { get; set; }
public string Status { get; set; }
public int Rev { get; set; }
}
我尝试了很多方法,但越来越困惑。因此,如果有人可以帮助我,甚至指出正确的方向,我将不胜感激。以下是我尝试过的方法之一。
public IEnumerable<Customer> Find (Func<Customer , bool> predicate) {
foreach (var p in Customer.SelectMany(p => p)) {
if(predicate(p)) {
yield return p;
}
}
}
我正在将一个 jason 字符串反序列化为一个列表,然后想在数据网格中显示,但 igGrid 不支持绑定到嵌套(复杂)属性。所以我需要展平列表,以便列表没有子级别。
【问题讨论】:
-
您想要什么的列表?
-
您的意见是什么?你已经有一个单位
IEnumerable<Customer>,你要拼什么? -
您是否要获取所有客户的所有电话号码列表?这是我看到的唯一数组。
-
我有一个 List
,其中例如是电话号码,所以对于那个例子,我有很多电话号码,我希望它们位于第一级。 -
您可以这样做,但您的问题是,如果目标是一个对象,那么该对象的每个实例都会有不同的结构。听起来很乱。如果您解释了您要通过这样做来完成什么,这可能会有所帮助。你介意吗?