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

C# 如何从c中的方法返回两个字符串数组,c#,C#,我在Main方法中有两个列表,并将它们传递给另一个方法,在那里我希望找到唯一的值。我可以找到唯一的值,但当我尝试返回两个字符串数组时,总是会出错。这是我的密码。我想从UniqueNames返回names1和names2 using System; using System.Linq; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string

我在Main方法中有两个列表,并将它们传递给另一个方法,在那里我希望找到唯一的值。我可以找到唯一的值,但当我尝试返回两个字符串数组时,总是会出错。这是我的密码。我想从UniqueNames返回names1和names2

 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);

    }
  }
}

从C 7.0版开始,元组受以下支持:

public static (string[], string[]) UniqueNames(string[] names1, string[] names2){/*…*/}

从C 7.0版开始,元组受以下支持:

public static (string[], string[]) UniqueNames(string[] names1, string[] names2){/*…*/}

有几种方法可以实现这一点,但没有必要使用单独的方法。将列表与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))

有几种方法可以实现这一点,但没有必要使用单独的方法。将列表与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))

它将为Join返回System.String[],System.String[]call@PavelAnikhouski没关系,我没说剩下的代码是正确的。这只是如何从C中的方法返回两个字符串数组。它将返回System.string[],System.string[]作为联接call@PavelAnikhouski没关系,我没说剩下的代码是正确的。这就是如何从C中的一个方法返回两个字符串数组。您正在寻找该方法吗?您正在寻找该方法吗?