代码之家  ›  专栏  ›  技术社区  ›  BrianMichaels

如何从c中的方法返回两个字符串数组#

c#
  •  0
  • BrianMichaels  · 技术社区  · 6 年前

     using System;
     using System.Linq;
    
     namespace ConsoleApp1
     {
       class Program
       {
        static void Main(string[] args)
        {
            string[] names1 = new string[] { "Ava", "Emma", "Olivia" };
            string[] names2 = new string[] { "Olivia", "Sophia", "Emma" };
            Console.WriteLine(string.Join(", ", Program.UniqueNames(names1, names2)));
        }
    
        public static string[] UniqueNames(string[] names1, string[] names2)
        {
    
            names1 = names1.Where(s => !names2.Contains(s)).ToArray();
            names2 = names2.Where(s => !names1.Contains(s)).ToArray();
            return (names1, names2);
    
        }
      }
    }
    
    3 回复  |  直到 6 年前
        1
  •  2
  •   Igor    6 年前

    https://docs.microsoft.com/en-us/dotnet/csharp/tuples

        ...
        (names1, names2) = Program.UniqueNames(names1, names2);
        Console.WriteLine(string.Join(", ", names1.Union(names2)));
    }
    
    public static (string[], string[]) UniqueNames(string[] names1, string[] names2)
    {
        names1 = names1.Where(s => !names2.Contains(s)).ToArray();
        names2 = names2.Where(s => !names1.Contains(s)).ToArray();
        return (names1, names2);
    }
    
        2
  •  3
  •   rfmodulator    6 年前

    从C#7.0版开始,元组的支持如下:

    public static (string[], string[]) UniqueNames(string[] names1, string[] names2){/*…*/}
    
        3
  •  0
  •   Patrick Tucci    6 年前

    有几种方法可以实现这一点,但是没有必要使用单独的方法。可能更容易 Union() 使用Linq的列表:

    string[] names1 = new string[] { "Ava", "Emma", "Olivia" };
    string[] names2 = new string[] { "Olivia", "Sophia", "Emma" };
    var unique = names1.Union(names2);
    Console.WriteLine(string.Join(", ", unique))