【问题标题】:Return two Chars from a method receiving a String从接收字符串的方法返回两个字符
【发布时间】:2016-05-15 06:40:40
【问题描述】:

我正在尝试从采用字符串的方法中返回两个字符。假设方法接收到单词“Hello”,我想返回第一个和最后一个字母 = ho。我做了一个方法,它接受一个字符串并返回一个字符。但我不知道如何返回两个。

【问题讨论】:

  • 如果没有该代码,很难看出一段代码有什么问题。

标签: c# string methods char


【解决方案1】:

您可以返回 char[] - 字符数组。

方法签名会变成这样:

public static char[] GetFirstAndLastChars(string input)
{
   var result = new char[2];

   //your code to take first and last letters   
   result[0] = inputString.FirstOrDefault();
   result[1] = inputString.LastOrDefault();

   return result;
}

正如其他答案中提到的,如果经常使用,您可以将其转换为扩展方法。

【讨论】:

    【解决方案2】:

    返回包含这两个字符的任何类型的数据结构。我可能会返回字符串“ho”,但您也可以返回数组或元组。

    【讨论】:

      【解决方案3】:

      使用返回char[] 的扩展方法可以很容易地完成。 完整示例:

      public class Program
      {
          public static void Main(string[] args)
          {
              string myString = "abc";
              var firstAndLast = myString.GetFirstAndLast();
              Console.WriteLine("First: " + firstAndLast[0] + " Last: " + firstAndLast[1]);
          }
      
      }
      
      public static class StringExtensions
      {
          public static char[] GetFirstAndLast(this string str)
          {
              return new char[2] { str.FirstOrDefault(), str.LastOrDefault() };
          }
      }
      

      这将输出:

      First: a Last: c
      

      【讨论】:

        【解决方案4】:

        也许你可以试试这个:

        public struct Ends
        {
            public char Front;
            public char Back;
        }
        
        public Ends GetEnds(string text)
        {
            return new Ends() { Front = text.First(), Back = text.Last() };
        }
        

        你显然会这样称呼它:

        Ends ends = GetEnds("hello");
        

        我得到这个结果:

        【讨论】:

          【解决方案5】:

          您可以从您的输入创建一个char[] 并返回该char[] 的第一个和最后一个元素:

          public char[] GetChars(string input)
          {
              char[] charArray = input.ToCharArray();
              char[] result = new char[] { charArray.First(), charArray.Last() };
          
              return result;
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-05-05
            • 2012-10-15
            • 1970-01-01
            • 2016-05-19
            • 1970-01-01
            • 1970-01-01
            • 2013-04-18
            • 2012-02-05
            相关资源
            最近更新 更多