如何将字符串数组列表更改为字符串列表

AFN

我有一个产品列表,每个产品都有一个字符串字段,其中包含一个用“#”字符连接的标签列表,如下所示:

标签 1 # 标签 2 # 标签 3

我需要获取所有标签并按重复次数对它们进行排序。

我实际上是这样做的:

List<string> t = new List<string>();

var tags = (from p in db.Products
                    where p.Active
                    select p.Tags
                    ).ToList();

foreach (var item in tags)
{
   if (item == null)
      continue;
   var d = item.Split('#');
   foreach (var item2 in d)
   {
      t.Add(item2);
   }
}

var ans = t.GroupBy(p => new { id = p }).Select(g => new { id = g.Key.id, total = g.Count() }).OrderByDescending(g => g.total).ToList();

但我确信它并不简单(也许优化)。有人可以帮助我使此代码更简单更好吗?例如使用 Linq 语句等。

阿列克谢·彼特里亚舍夫

这是我的变体:

using System;
using System.Linq;

namespace TagsSplitExample
{
    public class Product
    {
        public bool Active { get; set; }
        public string Tags { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var products = new[]
            {
                new Product{ Active = true, Tags = "Tag1"},
                new Product{ Active = true, Tags = "Tag1#Tag2"},
                new Product{ Active = true, Tags = "Tag1#Tag2#Tag3"},
            };

            var allTags = products
                .Where(p => p.Active && p.Tags != null)
                .Select(p => p.Tags)
                .Select(tags => tags.Split('#'))
                .SelectMany(tag => tag)
                .GroupBy(tag => tag)
                .Select(group => new { Tag = group.Key, Count = group.Count() })
                .OrderByDescending(pair => pair.Count)
                .ToList();

            allTags.ForEach(pair => Console.WriteLine($"{pair.Tag} : {pair.Count}"));

            Console.ReadLine();
        }
    }
}

如果您只需要枚举结果,则可以省略 Final ToList()。

结果:

Tag1 : 3
Tag2 : 2
Tag3 : 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将列表正确更改为字符串?

来自分类Dev

将字符串列表更改为列表

来自分类Dev

将字符串列表更改为字典列表

来自分类Dev

将字符串列表更改为整数列表

来自分类Dev

将列表更改为字符串

来自分类Dev

如何将列表作为字符串从API转换为字符串列表

来自分类Dev

如何将字符串更改为数组(哈希)?

来自分类Dev

如何将字符串更改为数组

来自分类Dev

使用maplist将字符串列表更改为原子?

来自分类Dev

将字符串列表更改为小写

来自分类Dev

如何使用Universal Image Loader将数组列表更改为字符串数组?

来自分类Dev

如何将字典中的值更改为列表而不是字符串

来自分类Dev

如何将for循环的输出格式更改为字符串而不是列表?

来自分类Dev

如何将新的字符串元素添加到字符串列表?

来自分类Dev

如何将字符串转换为字符串列表?

来自分类Dev

如何将 Acumatica 字符串字段自定义为字符串列表?

来自分类Dev

如何将字符串列表拆分为较小的字符串列表块

来自分类Dev

如何将字符串格式与数组/列表结合?

来自分类Dev

如何将字符串转换为数组列表

来自分类Dev

ValueError: 无法将字符串转换为浮点数---如何将字符串列表的列表转换为 numpy 数组类型浮点数?

来自分类Dev

如何获取字符串列表并将其更改为具有字符串属性的对象?

来自分类Dev

如何将整个字符串列表转换为普通数组或列表?

来自分类Dev

如何将字符串列表转换为列表的字典,其中键以给定的子字符串开头

来自分类Dev

如何将字符串添加到待办事项列表中的字符串列表

来自分类Dev

如何将字符串列表拆分为记录?

来自分类Dev

如何将tdatetime放入字符串列表对象?

来自分类Dev

如何将这些字符串数组列表[{},{},{} ...]拆分为字符串或整数?

来自分类Dev

OpenSkyApi:字符串数组还是字符串列表?

来自分类Dev

将Pandas DataFrame值从列表更改为字符串

Related 相关文章

  1. 1

    如何将列表正确更改为字符串?

  2. 2

    将字符串列表更改为列表

  3. 3

    将字符串列表更改为字典列表

  4. 4

    将字符串列表更改为整数列表

  5. 5

    将列表更改为字符串

  6. 6

    如何将列表作为字符串从API转换为字符串列表

  7. 7

    如何将字符串更改为数组(哈希)?

  8. 8

    如何将字符串更改为数组

  9. 9

    使用maplist将字符串列表更改为原子?

  10. 10

    将字符串列表更改为小写

  11. 11

    如何使用Universal Image Loader将数组列表更改为字符串数组?

  12. 12

    如何将字典中的值更改为列表而不是字符串

  13. 13

    如何将for循环的输出格式更改为字符串而不是列表?

  14. 14

    如何将新的字符串元素添加到字符串列表?

  15. 15

    如何将字符串转换为字符串列表?

  16. 16

    如何将 Acumatica 字符串字段自定义为字符串列表?

  17. 17

    如何将字符串列表拆分为较小的字符串列表块

  18. 18

    如何将字符串格式与数组/列表结合?

  19. 19

    如何将字符串转换为数组列表

  20. 20

    ValueError: 无法将字符串转换为浮点数---如何将字符串列表的列表转换为 numpy 数组类型浮点数?

  21. 21

    如何获取字符串列表并将其更改为具有字符串属性的对象?

  22. 22

    如何将整个字符串列表转换为普通数组或列表?

  23. 23

    如何将字符串列表转换为列表的字典,其中键以给定的子字符串开头

  24. 24

    如何将字符串添加到待办事项列表中的字符串列表

  25. 25

    如何将字符串列表拆分为记录?

  26. 26

    如何将tdatetime放入字符串列表对象?

  27. 27

    如何将这些字符串数组列表[{},{},{} ...]拆分为字符串或整数?

  28. 28

    OpenSkyApi:字符串数组还是字符串列表?

  29. 29

    将Pandas DataFrame值从列表更改为字符串

热门标签

归档