【问题标题】:C# codes to get a list of strings like A to Z?获取 A 到 Z 等字符串列表的 C# 代码?
【发布时间】:2009-07-19 20:28:36
【问题描述】:

如何在 C# 中获取从“A:”到“Z:”的字符串列表?像这样的:

List<string> list = new List<string>();
for (int i = 0; i < 26; i++)
{
   list.Add(string.Format("{0}:", Convert.ToChar('A' + i));
}

抱歉,我现在没有可用于验证的 VS 进行验证。顺便问一下,有没有可以交互式测试代码片段的网站?

【问题讨论】:

  • 非常感谢所有好的答案。我真的很喜欢 VS 2008 的代码,但是,我必须为 VS 2005 使用一个。

标签: c# visual-studio-2005


【解决方案1】:
from ch in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" select ch + ":";

【讨论】:

  • 我真的很喜欢这个的样子。
  • 或者:"ABCDEFGHIJKLMNOPQRSTUVWXYZ".Select(ch => ch + ":") - 同样的,不需要“from”或“in”。
  • 这个不错;也适用于不按顺序排列的范围,例如瑞典字母表。
【解决方案2】:

使用 LINQ:

List<string> aToZ = Enumerable.Range('A', 26)
                              .Select(x => (char) x + ":")
                              .ToList();

不使用 LINQ - 原始 for 循环的更简单替代方案 (IMO):

List<string> list = new List<string>();
for (char c = 'A'; c <= 'Z'; c++)
{
   list.Add(c + ":");
}

【讨论】:

  • 嘿,不过你用的是小写字母! (开个玩笑,我们的答案几乎相同)
  • 你们这些英国人很幸运有一个按顺序出现的字母 ;o)
【解决方案3】:

好吧,不计算 list.Ad.... 行末尾缺少的 ')',一切都很好,尽管您可以使用更短的符号来编写它

list.Add((char)('A' + i) + ":");

【讨论】:

  • 不过,这是很多不必要的强制转换等 - 如果您不喜欢 LINQ,请参阅我修改后的解决方案。
【解决方案4】:

编辑:你们都应该标记我,因为我没有阅读就回复。这在 VS2005 中不起作用,这是 OP 询问的。

List<string> list = new List<string>(Enumerable.Range((int)'A', 26).Select(value => ((char)value).ToString() + ':'));

【讨论】:

  • 无需显式调用 ToString 您在 + 的 RHS 上使用字符串文字。或者当然还有 string.Format。
  • 由于不再适用,可以删除。
  • 它不适用于OP,但它适用于线程的标题,也许其他人正在阅读。 :)
【解决方案5】:

怎么样:

var list = Enumerable.Range('a', 'z' - 'a' + 1).Select(charCode => (char)charCode)).ToList();

【讨论】:

    【解决方案6】:

    你的工作正常,除了缺少一个 )。我用LinqPad 测试了我所有的代码片段。 (我不知道没有它我是如何生活的)。

    【讨论】:

      【解决方案7】:

      为了测试代码 sn-ps,我使用LinqPadSnippet Compiler。我更喜欢 LinqPad,但两者都非常好。

      【讨论】:

        【解决方案8】:

        其他答案;-)

        List<string> list = new List<string>();
        for (int i = 'A'; i <= 'Z'; i++)
        {
            list.Add(string.Format("{0}:", Convert.ToChar(i)));
        }
        

        【讨论】:

          猜你喜欢
          • 2016-05-09
          • 1970-01-01
          • 1970-01-01
          • 2013-11-07
          • 2013-11-22
          • 2011-04-01
          • 2012-02-24
          • 2012-01-26
          • 2011-01-28
          相关资源
          最近更新 更多