我希望能够返回所有"列表值的列表"来自查询..'查询'下面从db返回多行结果,每行作为列表中的项。从db返回的样本结果看起来像......
当我提出断点时,示例查询结果:(这是下面第一行代码' query'从db返回)
- 姓名=约翰;地址= 1230,Ewded; listOfCities =" NY,CH,LA"
- 姓名= Eric;地址= 12,Ewded; listOfCities =" BO,SE,OR"
醇>
代码:
List<Index.Result> query = getresultsbackfromdb();
// query content at this point looks like above 1,2
List<string> result = new List<string>();
foreach (var item in query)
{
results.Add(item.listCities);
//'results' list takes in string and not a list
//How do I return a consolidated list of items
}
return result; // this should have ""NY, CH, LA, BO, SE, OR"
//I am trying to get a list of all cities from 1,2 included in
//one single list.
答案 0 :(得分:2)
List
中的方法允许您添加多个项目
foreach (var item in query)
{
results.AddRange(item.listCities);
}
另外,如果您需要过滤掉一些重复的项目,可以使用Distinct
LINQ方法。
答案 1 :(得分:1)
您可以根据Split Method
var result = yourString.Split(',');
var input = "NY, CH, LA";
var result = input.Split(',');
您可以将此值保存在List<object>
var list = new List<object>();
list.Add(result );
答案 2 :(得分:1)
您需要AddRange
和string.Split
方法
results.AddRange(string.Split(',', item.ListCities));
string.Split
会将字符串拆分为数组,只要它找到给定的字符,添加范围就会将数组中的所有项目添加到列表中。
答案 3 :(得分:1)
试试这个:
var result = query.SelectMany(x => x.listOfCities.Split(','));
或使用
var result = query.SelectMany(x => x.listOfCities.Split(',')).Distinct();
获取没有重复的列表。
答案 4 :(得分:1)
如果你喜欢Linq那么你可以这样做:
using System.Linq;
List<string> result = query.SelectMany(s => s.listCities).ToList();
(这与oleksii的AddRange基本相同。)