C# 返回列表值列表(合并)
我希望能够返回来自查询的所有“列表值”的列表。'下面的“查询”从数据库返回多行结果,每行作为列表中的一项。从db返回的示例结果如下所示 放置断点时的示例查询结果:(这是“query”下面的第一行代码从db返回的内容)C# 返回列表值列表(合并),c#,asp.net,.net,list,foreach,C#,Asp.net,.net,List,Foreach,我希望能够返回来自查询的所有“列表值”的列表。'下面的“查询”从数据库返回多行结果,每行作为列表中的一项。从db返回的示例结果如下所示 放置断点时的示例查询结果:(这是“query”下面的第一行代码从db返回的内容) 姓名=约翰;地址=1230,Ewded;listOfCities=“纽约、中国、洛杉矶” 姓名=埃里克;地址=12,Ewded;listOfCities=“BO、SE或” 代码: List query=getresultsbufromdb(); //此时的查询内容如1,2所示 列表
List query=getresultsbufromdb();
//此时的查询内容如1,2所示
列表结果=新列表();
foreach(查询中的var项)
{
结果。添加(项目列表);
//“结果”列表采用字符串而不是列表
//如何返回项目的合并列表
}
返回结果;//这应该有“NY、CH、LA、BO、SE或”
//我正试图得到一份从1,2开始的所有城市的列表
//一张单子。
您可以基于拆分方法尝试此代码
var result = yourString.Split(',');
var input = "NY, CH, LA";
var result = input.Split(',');
您可以将此值保存在列表中
var list=newlist();
列表。添加(结果);
您需要AddRange
和string.Split
方法
results.AddRange(string.Split(',', item.ListCities));
string.Split
将字符串拆分为一个数组,只要它找到给定的字符,add range就会将数组中的所有项目添加到列表中。尝试以下操作:
var result = query.SelectMany(x => x.listOfCities.Split(','));
或使用
var result = query.SelectMany(x => x.listOfCities.Split(',')).Distinct();
要获得不重复的列表。如果您喜欢Linq,则可以执行以下一行操作:
using System.Linq;
List<string> result = query.SelectMany(s => s.listCities).ToList();
使用System.Linq;
List result=query.SelectMany(s=>s.listcity.ToList();
(这与oleksii的AddRange基本相同。)在
列表中有一种方法允许您添加多个项
foreach (var item in query)
{
results.AddRange(item.listCities);
}
文件
此外,如果需要过滤掉一些重复项,可以使用LINQ方法
using System.Linq;
List<string> result = query.SelectMany(s => s.listCities).ToList();
foreach (var item in query)
{
results.AddRange(item.listCities);
}