【问题标题】:Grabbing specific char from CharArray从 CharArray 中获取特定字符
【发布时间】:2016-05-18 21:28:56
【问题描述】:

我有这个 CharArray:

char[] letters = "qwertyuiopasdfghjklzxcvbnm123456789".ToCharArray();

我想知道如何从这个数组中获取一个特定的字母。例如,假设我有

int lengthMin = 1;
int lengthMax = 5;

按照上面的代码,我如何从 CharArray 中获取第一个、第二个、第三个、第四个和第五个字母?在此先感谢:)

【问题讨论】:

  • “一二四五”第三个呢?
  • @Xiaoy312 哎呀,修复了:P

标签: c#


【解决方案1】:

像这样:

var specificLetters = letters
    .Skip(lengthMin - 1)
    .Take(lengthMax - lengthMin + 1)
    .ToArray();

而且,与@ecanmcdonnal 的解决方案不同,您不必担心范围,只要它们不是负数。

【讨论】:

    【解决方案2】:

    您可以使用 for 循环,将 lengthmax 作为上限,将 length min 作为下限。您还应该做一些检查以确保 lengthmin >= 0 并且 lengthmax 是

    List<char> chars = new List<char>();
    
    for (int i = lengthMin; i < lengthMax; i++)
    {
        chars.Add(letters[i]);
    }
    

    【讨论】:

      【解决方案3】:

      我会使用数组复制

      var target = new char[lengthMax - lengthMin + 1];
      Array.Copy(letters , lengthMin  , target , 0, lengthMax );
      

      【讨论】:

      • Array.Copy 需要一个 0 索引的 sourceIndex,而 lengthMin 不是。
      【解决方案4】:

      这是一个 1 班轮:

      var result = letters.Take(--lengthMax)
                          .Skip(--lengthMin);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-20
        • 2017-07-28
        相关资源
        最近更新 更多