【问题标题】:Getting individual string length in an array [closed]获取数组中的单个字符串长度[关闭]
【发布时间】:2015-01-09 15:08:20
【问题描述】:

我正在尝试编写一个执行以下操作的程序:

有一个方法叫做lengthOffTheWords。它接收一个字符串数组,并返回一个代表每个单独字符串长度的数字数组。

例如:对于以下输入

{"I", "know", "a" , "friend"} 方法返回{1,4,1,6}

{"yes"}方法返回{3}.

{"me", "too"}方法返回{2,3}.

我想看看如何编写它的示例。

【问题讨论】:

  • 请花点时间仔细查看How to Ask
  • array.Select(x => x.Count())
  • 我会回答这个问题,但下次请确保您在提问之前先进行一些研究。
  • @Najera - 如果输入是stringCount 效率低下,请改用Length
  • 你的问题写得真的很糟糕。在发布之前花点时间阅读 SO 规则。无论如何,@Najera 的建议是正确的解决方案,将 Count() 替换为 Length。

标签: c# arrays


【解决方案1】:

我会这样做:

public int[] LengthOffTheWords(string[] array)
{
     return array.Select(item => item.Length).ToArray();
}

我没有对此进行测试,但它应该可以满足您的需求。

【讨论】:

    【解决方案2】:
        int[] GetLengths(string[] array)
        {
           int[] structure = new int[array.Length];
           for(int i = 0;i < array.Length;i++)
            {
               int length = array[i].Length;
               structure[i] = length;
            }
            return structure;
        }
    

    【讨论】:

    • 这和问题一样糟糕。一个简单的 myArray.Select(c => c.Length) 就可以了。无需做任何循环。另外,您的答案不会生成具有长度的数组,它只是在每次迭代中创建一个具有长度的局部变量。
    • 哇哦。 慢慢拍手
    • 这实际上并没有回答这个问题吗?...
    • 是的,但显然你只是想变得聪明。他得到了一个由 3 个字符串组成的数组,他希望将每个字符串的长度作为输出。
    • 只是为了激怒人们,这是另一个非 LINQ 答案:string[] words = { "I", "know", "a", "friend" };int[] wordLengths = Array.ConvertAll(words, delegate(string x) { return x.Length; }); +1 给 Coding Chief 以修改他的完整答案,并使用 slow鼓掌。在 SO 水域中可能会变得相当粗糙,一定要喜欢喜剧。
    猜你喜欢
    • 1970-01-01
    • 2019-12-17
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 2016-01-01
    • 1970-01-01
    • 2014-11-20
    相关资源
    最近更新 更多