如何返回不同的类型?

时间:2019-01-23 13:57:33

标签: c#

  public static string k;

  private static List<int> G(List<int> a)
  {
      string sentence = "0 55   6";
      string pattern = @"[0-9]+";

      Regex rgx = new Regex(pattern);

      List<int> not = new List<int>();

      // foreach match i add it to my list
      foreach (Match match in rgx.Matches(sentence))
      {
          k = match.Value;
          int notman = Int32.Parse(k);
          not.Add(notman);
      }

      // turn my list into array
      int[] notarray = not.ToArray();

      // trying to return int[] array;
      return notarray;
 }

所以我用这种方法输入了List<<int>int>,但是我想将其作为int[]数组返回。将int[] array 返回主方法的任何方法 ?我正在尝试将其转换,以便我可以添加array[0] + array[1]并重复。

1 个答案:

答案 0 :(得分:0)

据我所知,您想要从给定的int[](例如new int[] {0, 55, 6})中获得string(整数数组,例如"0 55 6")。如果是您的情况,可以尝试 Linq

 using System.Linq;

 ...

 private static int[] G(string sentence) {
   return Regex
     .Matches(sentence, @"\-?[0-9]+")          // \-? - if we accept negative numbers
     .OfType<Match>()                          // Matches collection to IEnumerable<Match>
     .Select(match => int.Parse(match.Value))  // each Match to int
     .ToArray();                               // Materialize to array
 }

 ...

 // result == {0, 55, 6}
 int[] result = G("0 55   6");

最后,如果要对数组中的项目Sum进行添加,请添加 Linq Sum()

 int sum = G("0 55   6").Sum(); // 61 == 0 + 55 + 6