【问题标题】:seperate the string array into two different string list in c#在c#中将字符串数组分成两个不同的字符串列表
【发布时间】:2017-12-29 19:56:46
【问题描述】:

我有一个字符串数组

string[] lines=File.ReadAllLines(path);

这些行包含以下数据

"A|3232|test"
"C|5544|test2"
"C|8884|test3"
"A|7777|test0"
"A|4343|test4"

我想根据第一个字母“A”和“C”来分隔上述数组。如何将上述行分开并存储在 bleow list 字符串中。

List<string> aletterlines=
List<string> CletterLines=

【问题讨论】:

  • 你有什么问题?到目前为止,您尝试过什么?
  • 请阅读如何创建minimal, complete, verifiable example 并通过编辑将缺少的信息添加到您的帖子中:) 如果您还没有阅读how to ask,我建议您这样做:) 我强烈推荐遵循我链接的 2 个指南,因为当帖子遵循这些指南时,SO 上的人更有可能回答问题。我特别缺少的是 - 到目前为止你尝试了什么?您面临哪些错误/问题?您可能有有助于理解您的问题的 coden-ps 吗?欢迎使用 StackOverflow

标签: c# asp.net visual-studio c#-4.0 c#-3.0


【解决方案1】:

你可以用 Linq 做到这一点:

var lineGroups = lines.GroupBy(d => d[0]);
List<string> aLetters = lineGroups.SingleOrDefault(d => d.Key == 'A').ToList();
List<string> cLetters = lineGroups.SingleOrDefault(d => d.Key == 'C').ToList();

【讨论】:

    【解决方案2】:
    string[] lines = File.ReadAllLines(path);
    
    List<string> aletterlines = new List<string>();
    List<string> CletterLines = new List<string>();
    
    foreach (var item in lines)
    {
        string[] currentLine = item.Split('|');
    
        if (currentLine[0] == "A")
        {
            aletterlines.Add(item);
        }
        else
        {
            CletterLines.Add(item);
        }
    }
    

    【讨论】:

      【解决方案3】:

      有很多方法可以实现这一点,您可以按照其他人的建议使用 LINQ 或简单的 foreach 循环:

      private void Example()
      {
          string[] lines = {"A|3232|test",
                            "C|5544|test2",
                            "C|8884|test3",
                            "A|7777|test0",
                            "A|4343|test4"};
      
          List<string> aletterlines = new List<string>();
          List<string> CletterLines = new List<string>();
      
          foreach (string item in lines)
          {
              if (item.StartsWith("A"))
              {
                  aletterlines.Add(item);
              }
              else if (item.StartsWith("C"))
              {
                  CletterLines.Add(item);
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-12
        • 2020-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多