C# 检查列表中数组的大小,并将数组中的每个实体显示为唯一的列表值
我想知道是否有人可以帮助我,基本上我正在尝试使用linq来平展列表。列表中有一个电话号码数组,我不知道该怎么做,只需计算数组的大小,然后将每个电话号码添加为一个唯一的列表值C# 检查列表中数组的大小,并将数组中的每个实体显示为唯一的列表值,c#,arrays,linq,list,C#,Arrays,Linq,List,我想知道是否有人可以帮助我,基本上我正在尝试使用linq来平展列表。列表中有一个电话号码数组,我不知道该怎么做,只需计算数组的大小,然后将每个电话号码添加为一个唯一的列表值 var FlatenedList = from x in result where x.ID != null orderby x.ID select new { AccountNumber = x.AccountNumber, Balance = x.Balance, BillToCompan
var FlatenedList = from x in result
where x.ID != null
orderby x.ID
select new
{
AccountNumber = x.AccountNumber,
Balance = x.Balance,
BillToCompanyName = x.BillToContact.CompanyName,
BillToName = x.BillToContact.Name,
BillToPhoneNumber1 = x.BillToContact.PhoneNumbers[0].Number == null ? String.Empty : (x.BillToContact.PhoneNumbers[0].Number),
BillToPhoneNumber2 = x.BillToContact.PhoneNumbers[1].Number == null ? String.Empty : (x.BillToContact.PhoneNumbers[1].Number),
BillToPhoneNumber3 = x.BillToContact.PhoneNumbers[2].Number == null ? String.Empty : (x.BillToContact.PhoneNumbers[2].Number),
};
也许你应该试试下面这样的东西,我还没有编译过,但这可能有用
var FlatenedList = from x in result
where x.ID != null
orderby x.ID
select new
{
AccountNumber = x.AccountNumber,
Balance = x.Balance,
BillToCompanyName = x.BillToContact.CompanyName,
BillToName = x.BillToContact.Name,
BillToPhoneNumber = x.BillToContact.PhoneNumbers.ToList().Where(num=>num.Number !=null).Select(num=>num)
};
我想你需要一份工作
以下是如何为一个项目执行此操作:
var FlattenedItem = new ExpandoObject();
for(int i = 0; i < x.BillToContact.PhoneNumbers.length; i++) {
// You will have to cast FlattenedItem to an IDictionary to add items
((IDictionary<string, object>)FlattenedItem).Add("BillToPhoneNumber" + i, x.BillToContact.PhoneNumbers[i]);
}
// This is your first phonenumber
var firstPhoneNumber = FlattenedItem.BillToPhoneNumber0;
var flatteeditem=newexpandoobject();
for(int i=0;i
查看此答案以了解更多信息:
如果我理解正确,这就是您需要的:-
var result = accounts.OrderBy(x => x.Id)
.Select(x => new
{
AccountNumber = x.AccountNumber,
Balance = x.Balance,
BillToCompanyName = x.BillToContact.CompanyName,
BillToName = x.BillToContact.Name,
PhoneNumbersCount = x.BillToContact.PhoneNumbers.Count(),
//All phone numbers count including null
PhoneNumbersList = x.BillToContact.PhoneNumbers
.Select(z => z.Number ?? String.Empty).ToList()
});
您可以在我使用了一些示例数据的地方查看此信息,并让我知道这是否是您要查找的内容。添加所有电话号码并获得唯一列表,如中所示?你能展示一些样本数据吗?你所拥有的有用。您的意思是希望此代码在您的匿名对象中生成属性,直到
BillToPhoneNumber99
如果BillToContact.PhoneNumbers
包含100个条目为止?