在C#中返回两个列表

前端之家收集整理的这篇文章主要介绍了在C#中返回两个列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在研究这个问题,我仍然不确定如何实现以及从单独的方法返回两个列表的最佳方法是什么?

我知道有类似的问题浮出水面,但它们似乎互相矛盾,哪个是最好的方法.
我只需要简单有效地解决我的问题.
提前致谢.

解决方法

有很多方法.

>返回列表的集合.这不是一个很好的方法,除非你不知道列表的数量或它是否超过2-3个列表.

public static IEnumerable<List<int>> Method2(int[] array,int number)
{
    return new List<List<int>> { list1,list2 };
}

>创建一个包含列表属性的对象并将其返回:

public class YourType
{
    public List<int> Prop1 { get; set; }
    public List<int> Prop2 { get; set; }
}

public static YourType Method2(int[] array,int number)
{
    return new YourType { Prop1 = list1,Prop2 = list2 };
}

>返回两个列表的元组 – 如果使用,特别方便
C#7.0元组

public static (List<int>list1,List<int> list2) Method2(int[] array,int number) 
{
    return (new List<int>(),new List<int>());
}

var (l1,l2) = Method2(arr,num);

C#7.0之前的元组:

public static Tuple<List<int>,List<int>> Method2(int[] array,int number)
{
    return Tuple.Create(list1,list2); 
}
//usage
var tuple = Method2(arr,num);
var firstList = tuple.Item1;
var secondList = tuple.Item2;

我会选择2或3选项,具​​体取决于编码风格以及此代码在更大范围内的适用范围.在C#7.0之前,我可能会建议选项2.

猜你在找的C#相关文章