我如何计算列表中的重复项并更改项目值

1994年

我有一个程序,可基于文本文件的内容生成3个列表。现在,我想查看一个列表,如果其中有一个以上的项目,我想将值更改为“列表中的编号x项目”,并从列表中删除重复项。

这是我用来打开文件并将其拆分为列表的代码:

    private void open_Click(object sender, EventArgs e)
    {
        if (inputFile.ShowDialog() == DialogResult.OK)
        {
         var reader = new StreamReader(File.OpenRead(inputFile.FileName));
         while (!reader.EndOfStream)
             {
                 string line = reader.ReadLine();
                 if (string.IsNullOrEmpty(line)) continue;
                 if (line.StartsWith("#main"))
                 {
                     deck = "main";
                 }
                 if (deck == "main")
                 {
                     if (!line.StartsWith("#"))
                     {
                         int cardid = Convert.ToInt32(line.Substring(0));
                         MainDeck.Items.Add(Program.CardData[cardid].Name);
                     }
                 }
                 if (line.StartsWith("#extra"))
                 {
                     deck = "extra";
                 }
                 if (deck == "extra")
                 {
                     if (!line.StartsWith("#extra") && !line.StartsWith("!side"))
                     {
                         int cardid = Convert.ToInt32(line.Substring(0));
                         ExtraDeck.Items.Add(Program.CardData[cardid].Name);
                     }
                 }

                 if (line.StartsWith("!side"))
                 {
                     deck = "side";
                 }
                 if (deck == "side")
                 {
                     if (!line.StartsWith("!side"))
                     {
                         int cardid = Convert.ToInt32(line.Substring(0));
                         SideDeck.Items.Add(Program.CardData[cardid].Name);
                     }
                 }
            }
         reader.Close();
         GenerateCode();
        }
    }

换句话说,说该项目"hello"在列表中3次:我只想将其更改为在列表中一次,然后说"3x hello"

蒂姆·施密特(Tim Schmelter)

使用Enumerable.Distinct删除重复项:

MainDeck = MainDeck.Distinct().ToList();
ExtraDeck = ExtraDeck.Distinct().ToList();
SideDeck = SideDeck.Distinct().ToList();

如果要先计算重复项:

int mainDeckDups = MainDeck.Count - MainDeck.Distinct().Count();
int extraDeckDups = ExtraDeck.Count - ExtraDeck.Distinct().Count();
int sideDeckDups = SideDeck.Count - SideDeck.Distinct().Count();

如果您确实想显示某个项目在列表中的次数,则可以使用Enumerable.GroupBy,例如:

var mainDeckGroups = MainDeck.GroupBy(s => s)
    .Select(g => new { Item = g.Key, Count = g.Count() })
    .Where(x => x.Count > 1)
    .OrderByDescending(x => x.Count);
foreach (var dup in mainDeckGroups)
    Console.WriteLine("{0}x {1}", dup.Count, dup.Item);
// other lists ...

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何计算python列表中的连续重复项

来自分类Dev

如何在列表中查找重复项,并对找到的每个重复项执行不同的计算?

来自分类Dev

计算OCaml列表中重复项的数量

来自分类Dev

用于计算列表中重复项的算法

来自分类Dev

Python:计算并删除列表中的重复项

来自分类Dev

如何计算我的数组的重复项?

来自分类Dev

计算重复项中的唯一值

来自分类Dev

如何在Python中的字典项列表中按值删除重复的字典项

来自分类Dev

如何计算阵列中的重复项

来自分类Dev

如何计算数组中的重复项

来自分类Dev

如何计算字典值中的标记并将每个匹配项替换为列表中的项

来自分类Dev

如何在列表中列出项目并在ReactJS中删除重复项?

来自分类Dev

如何遍历列表并检索最小值的索引,但忽略输出列表中的重复项?

来自分类Dev

如何在列表中查找重复项?

来自分类Dev

如何从对象列表中删除重复项

来自分类Dev

如何从列表中删除连续的重复项?

来自分类Dev

如何删除列表中的重复项(Raku)

来自分类Dev

Ansible:如何从列表中获取重复项?

来自分类Dev

如何索引列表中的重复项?

来自分类Dev

如何从对象列表中删除重复项

来自分类Dev

如何搜索OCaml列表中的重复项?

来自分类Dev

如何从sql列表中删除重复项?

来自分类Dev

如何编辑列表中的重复项?

来自分类Dev

如何添加新列,该新列将计算特定列中重复项的值

来自分类Dev

如何添加新列,该新列将计算特定列中重复项的值

来自分类Dev

我将如何计算列表中的所有值,而不是计算列表中的每个变量?

来自分类Dev

计算用作字典值的列表中的项目

来自分类Dev

计算用作字典值的列表中的项目

来自分类Dev

Java脚本计算字典列表中的重复项

Related 相关文章

  1. 1

    如何计算python列表中的连续重复项

  2. 2

    如何在列表中查找重复项,并对找到的每个重复项执行不同的计算?

  3. 3

    计算OCaml列表中重复项的数量

  4. 4

    用于计算列表中重复项的算法

  5. 5

    Python:计算并删除列表中的重复项

  6. 6

    如何计算我的数组的重复项?

  7. 7

    计算重复项中的唯一值

  8. 8

    如何在Python中的字典项列表中按值删除重复的字典项

  9. 9

    如何计算阵列中的重复项

  10. 10

    如何计算数组中的重复项

  11. 11

    如何计算字典值中的标记并将每个匹配项替换为列表中的项

  12. 12

    如何在列表中列出项目并在ReactJS中删除重复项?

  13. 13

    如何遍历列表并检索最小值的索引,但忽略输出列表中的重复项?

  14. 14

    如何在列表中查找重复项?

  15. 15

    如何从对象列表中删除重复项

  16. 16

    如何从列表中删除连续的重复项?

  17. 17

    如何删除列表中的重复项(Raku)

  18. 18

    Ansible:如何从列表中获取重复项?

  19. 19

    如何索引列表中的重复项?

  20. 20

    如何从对象列表中删除重复项

  21. 21

    如何搜索OCaml列表中的重复项?

  22. 22

    如何从sql列表中删除重复项?

  23. 23

    如何编辑列表中的重复项?

  24. 24

    如何添加新列,该新列将计算特定列中重复项的值

  25. 25

    如何添加新列,该新列将计算特定列中重复项的值

  26. 26

    我将如何计算列表中的所有值,而不是计算列表中的每个变量?

  27. 27

    计算用作字典值的列表中的项目

  28. 28

    计算用作字典值的列表中的项目

  29. 29

    Java脚本计算字典列表中的重复项

热门标签

归档