【问题标题】:C#- Convert List (text) in to string Array (words)C#- 将列表(文本)转换为字符串数组(单词)
【发布时间】:2017-11-11 12:29:26
【问题描述】:
List<string> l = new List<string>();
l.Add("This is TEXT");
l.Add("Convert it to words");

如何转换成字符串数组?

像这样:

string[] array = new string{"this","is","TEXT","Convert","it","to","words"};

【问题讨论】:

  • @Aria: l.ToArray() 不会执行内部拆分
  • @Aria :.ToArray()[正如你在评论中提到的],会给你输出{"This is TEXT", "Convert it to words"} 不是这样的:{"this","is","TEXT","Convert","it","to","words"};
  • 对对我还以为他只是想转成数组,一开始没看懂!!!!!!
  • 也许磁贴应该沿着“如何从包含多个单词的字符串列表中获取所有单独的单词作为数组”
  • 好的,将标题从:Convert List (text) in to string Array (words) to yourSuggested title.

标签: c# arrays list arraylist


【解决方案1】:

试试这个:

List<string> listArray = new List<string>();
listArray.Add("This is TEXT");
listArray.Add("Convert it to words");

// Convert

string[] arrayString = String.Join(" ", listArray).Split(' ');

工作Example here..

【讨论】:

  • DontNetFiddle - 不错;了解python fiddle和mysql,但这对我来说是新的。 +1
  • @un-lucky 请编辑你的答案,这是锁定我,除非你的帖子被编辑,我想撤消投票。
【解决方案2】:

或者将 Linq 与 SelectMany 一起使用(在 IEnumeration 上运行,对每个应用相同的东西并将所有结果作为结果放入一个 IEnumeration - 请参见此处的 f.e.:Difference Between Select and SelectMany

List<string> listArray = new List<string>();
listArray.Add("This is TEXT");
listArray.Add("Convert it to words");

// this is the array holding all words
var result = listArray.SelectMany(el => el.Split(" ".ToCharArray())).ToArray();

// this puts , between any words in result to output it ...
Console.WriteLine(string.Join(",", result));
Console.ReadLine();

DotNetFiddle

编辑:与不幸的解决方案的区别:

  • 他提取每个句子,使用空格将它们连接起来,从而产生更大的字符串。然后生成的字符串在空格上拆分以形成您的数组。

  • 我的使用 Linq 将每个句子拆分为它们的单词,然后将所有单词放入一个 IEnumerable 集合中,我将其枚举到一个数组中。

两者都产生所需的输出。 SelectMany 可能“更便宜”,因为不必先构造长字符串。不过,您必须查看实现 - 对于您的问题,两种方法之间的内部差异没有实际意义。

【讨论】:

  • ... el.Split(' ') ...
  • 我不想中间有逗号。
  • @Nab:逗号仅出现在输出中,因为您看不到数组本身(仅通过在var result = ...; 之后放置断点并检查结果),您的“单词”在result这是一个string[],没有逗号,我添加它们只是为了在Console.WriteLine(string.Join(",", result));的控制台上输出@
  • @DmitryBychenko 公平点,+1 评论。虽然不会编辑。你的“更便宜”是我的猜测 - 除非编译器看到我的 " " 是一个 const 并对其进行优化。
  • 好的,稍后我会检查差异。谢谢!
猜你喜欢
  • 2011-09-05
  • 1970-01-01
  • 2013-11-27
  • 2016-02-04
  • 2020-04-02
  • 2012-01-18
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多