对字符串进行分组并添加到列表中
本文关键字:添加 列表 字符串 | 更新日期: 2024-10-30 19:56:28
我现在更新到复杂情况,我非常卡住了。请让我知道您是否可以分享一些光。
我不再有这个作为List<string>
.它现在是一个List<categories>
它将具有以下属性
public class Categories
{
public string DisplayName { get; set; }
public string ValueCode { get; set; }
public string Count { get; set; }
}
这将具有类似
Category1/SubCategory1
cat1/sc1
5
Category1/SubCategory2
cat1/sc2
4
Category 2/Subcategory1
cat2/sc1
5
Category 2/Subcategory2
cat2/sc2
23
所以,我更新了我现有的工作分类等等。
public class JobCateogry
{
public string DisplayName { get; set; }
public string ValueCode { get; set; }
public string Count { get; set; }
public List<JobCateogry> SubCategories { get; set; }
}
我尝试拆分字符串并将其分两步分配给新类,首先通过拆分,然后通过assiing。但我确信我的做法是错误的,因为当我分裂的那一刻,我失去了计数.
var lstCategory = Categories
.Where(i => i.count > 0)
.Select(item => item.valueCode.Split('/')
.Select(k =>(k)).ToList();
List<JobCategories> jobcategories = lstCategory
.Select(item => item.Split(QueryStringConstants.CAT_SEPERATOR.ToCharArray()[0]))
.GroupBy(tokens => tokens[0].Trim(), tokens => tokens[1])
.Select(g => new JobCategories(g.Key, g.DisplayName,g.ToList(),)).ToList();
你能帮忙吗?
(我需要按值代码拆分并显示显示名称和计数)
*老问题 *我有一个列表,其中包含这样的字符串
"Category1/SubType1"
"Category1/SubType2"
"Category1/SubType3"
"Category1/SubType4"
"Category2/SubType1"
"Category2/SubType2"
"Category2/SubType3"
"Category2/SubType4"
我有一个有两个属性的类。
public string Category { get; set; }
public List<string> SubCategory{ get; set; }
我需要遍历列表,选择所有类别,然后向它们添加子类别。
我已经对列表进行了排序,并且能够通过获取第一个字符串并与其他字符串进行比较来执行 for 循环来实现传统方式。我想知道是否有更整洁的方法可以做到这一点?
拆分每个列表项,然后按类别名称分组应得到所需的结果:
list.Select(item => item.Split('/'))
.GroupBy(tokens => tokens[0], tokens => tokens[1])
.Select(g => new TheClass
{
Category = g.Key,
SubCategory = g.ToList()
});
您可以尝试此方法:
var query = from input in inputs
let split = input.Split('/')
group split[1] by split[0] into grouping
select new MyClass
{
Category = grouping.Key,
SubCategory = grouping.ToList()
};
这样的东西应该有效
IEnumerable<string> items = GetSomeItems() ;
Widget[] list = items
.Select( s => s.Split('/') )
.GroupBy( x => x[0] , x => x[1] )
.Select( g => new Widget( g.Key , g.ToList() ) )
.ToArray()
;
给定这样的类:
class Widget
{
public Widget ( string category , IEnumerable<string> subcategories )
{
this.Category = category ;
this.Subcategories = subcategories.ToArray() ;
}
public string Category { get; private set; }
public string[] Subcategories { get ; private set ; }
}