【问题标题】:split string and put them line after line [closed]拆分字符串并将它们逐行放置[关闭]
【发布时间】:2012-10-29 13:27:16
【问题描述】:

我有一个问题,如何拆分字符串并让拆分后的字符串逐行显示?

字符串:

What is "that" ENUM "No", "Yes", "OK", "Cancel";

我想要DataTable:

Name   Type    Comment
"that" ENUM    "No"       // all of them
               "Yes"      // should be
               "OK"       // in the same
               "Cancel"   // cell

必须是string[] tmpList = tmp.Split(new Char[] { ' ',',', ';' }, StringSplitOptions.RemoveEmptyEntries);,然后是attributeDEF.Rows.Add(new object[] { tmpList1[1], tmpList1[2], tmpList1[3] + "\n" + tmpList[a]+ "\n"});

谁能给我一个线索?

【问题讨论】:

  • 分割字符串? is "that" 在哪里消失了?
  • 您发布的代码有什么问题?这几乎就是你想要的不是吗?
  • 对不起,而不是“什么”是“那个”

标签: c# string list split


【解决方案1】:

以下代码将为您生成一行:

string tmp = @"What is ""that"" ENUM ""No"", ""Yes"", ""OK"", ""Cancel";

string[] tmpList = tmp.Split(new Char[] { ' ',',', ';' }, StringSplitOptions.RemoveEmptyEntries);

var row = new object[] { tmpList[0], tmpList[3], string.Join("\n", tmpList.Skip(4).ToArray()) };

【讨论】:

  • Wouter:我试过你的代码,但为什么它没有改变任何东西,我在一行中得到了"No", "Yes", "OK", "Cancel"
  • “一行”是什么意思? string.Join 为每个项目添加一个“\n”
  • 对不起,我犯了错误:p,非常感谢,工作得很好
  • 我还有 1 个问题,如果我想要 "No""Yes" /n "OK""Cancel" 怎么办?这意味着否,是在一行中,好的,在另一行中一起取消?
  • 您可以使用 Skip 和 Take 来限制项目的数量。 Skip(4).Take(2) 将只接受 No/Yes。 Skip(5).Take(2) 将采取 OK/Cancel。
【解决方案2】:

如果您询问为最后一个单元格连接字符串,那么这可能是一种选择:

var result = String.Join("\n", tmpList.Skip(4).ToArray());

【讨论】:

  • 顺便说一下,在 .NET 4.0 及更高版本中,额外的 ToArray() 是不必要的。 .NET 4 添加了一个采用IEnumerable<T> 序列的表单。
  • 效果很好,再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 2018-12-14
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多