【发布时间】:2016-05-15 06:40:40
【问题描述】:
我正在尝试从采用字符串的方法中返回两个字符。假设方法接收到单词“Hello”,我想返回第一个和最后一个字母 = ho。我做了一个方法,它接受一个字符串并返回一个字符。但我不知道如何返回两个。
【问题讨论】:
-
如果没有该代码,很难看出一段代码有什么问题。
我正在尝试从采用字符串的方法中返回两个字符。假设方法接收到单词“Hello”,我想返回第一个和最后一个字母 = ho。我做了一个方法,它接受一个字符串并返回一个字符。但我不知道如何返回两个。
【问题讨论】:
您可以返回 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;
}
正如其他答案中提到的,如果经常使用,您可以将其转换为扩展方法。
【讨论】:
返回包含这两个字符的任何类型的数据结构。我可能会返回字符串“ho”,但您也可以返回数组或元组。
【讨论】:
使用返回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
【讨论】:
您可以从您的输入创建一个char[] 并返回该char[] 的第一个和最后一个元素:
public char[] GetChars(string input)
{
char[] charArray = input.ToCharArray();
char[] result = new char[] { charArray.First(), charArray.Last() };
return result;
}
【讨论】: