【问题标题】:Display list of strings with only one string which is separated by (,) and (\n)显示字符串列表,其中只有一个由 (,) 和 (\n) 分隔的字符串
【发布时间】:2021-12-31 06:53:26
【问题描述】:

我需要转换包含一个长字符串的字符串列表,其中值用,\n 分隔。示例:

string[] namesArray = {"Name1,Surname1", "Name2,Surname2", "Name3,Surname3"};`

string nameSting = "";

foreach(string nameFromArray in namesArray) {
  nameSting += nameFromArray + "\n";
}

List<string> namesList = new List<string>();
namesList.Add(nameSting);

我的问题是如何处理namesList 以便Console.WriteLine 输出以下格式:

1. Name1 Surname1
2. Name2 Surname2
3. Name3 Surname3

请注意,以上任何内容都无法更改。我知道这是一个奇怪的代码,但它是一种非常简化的方式来显示 API 如何返回需要以上述格式转换的数据。

【问题讨论】:

  • 您可以将您的字符串按\n, 拆分,然后根据需要收集您的(姓名、姓氏)对吗?还是有一些额外的限制阻止这样做?
  • 问题中发布的代码似乎正在按照您的描述进行操作,但效率非常低。您应该考虑将其更改为使用字符串构建器或简单地 string.Join (我怀疑在某些情况下它会比字符串构建器做得更好)。
  • 不幸的是,代码无法更改。我试图用这样的循环输出它:` foreach(var x in namesList){ Console.WriteLine(x.Replace(",", " ")); }` 但是我还需要在每个名称之前添加索引,因此如果将来字符串变长,循环仍将跟踪顺序。
  • 您正在创建一个仅存储在项目上的列表,为什么是列表??
  • 其实我没有看到问题,你需要增量索引吗?您的代码中的控制台打印在哪里?具体要求是什么,请create a Minimal, Reproducible Example显示你有什么和你期望什么。

标签: c# arrays string list


【解决方案1】:

以下

string[] namesArray = {"Name1,Surname1", "Name2,Surname2", "Name3,Surname3"};
int index = 1; 
namesArray.ToList().ForEach(n => {Console.WriteLine(index + ". " + n.Replace(',', ' ')); index++;});

将输出:

1. Name1 Surname1
2. Name2 Surname2
3. Name3 Surname3

不要忘记包含以下 using 语句:

using System.Linq;
using System.Collections.Generic;

【讨论】:

    【解决方案2】:

    用换行符分割,再用逗号分割

    var names = namesList
        .SelectMany(t => t.Split(new string[] { Environment.NewLine }, StringSplitOptions.None))
        .Select(name => name.Split(','))
        .Select((name, index) => (Index: index, FirstName: name[0], Surname: name[1]));
    
    foreach(var name in names)
    {
        Console.WriteLine($"{name.Index}. {name.FirstName} {name.Surname}");
    }
    

    【讨论】:

      猜你喜欢
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多