.Net中的Arrays.asList(...)

时间:2011-03-10 12:10:17

标签: java .net

我正在寻找编写以下Java代码的最简单方法

Arrays.asList(1L);
<。> .Net

由于

6 个答案:

答案 0 :(得分:8)

由于数组已在.NET中实现IList<T>,因此实际上并不需要等效的Arrays.asList。只需直接使用数组,或者如果你觉得需要明确它:

IList<int> yourList = (IList<int>)existingIntArray;
IList<int> anotherList = new[] { 1, 2, 3, 4, 5 };

这与Java原始版本的距离非常接近:固定大小,并且写入传递给底层数组(尽管在这种情况下,列表和数组是完全相同的对象)。

除了对Devendra's answer的评论之外,如果你真的想在.NET中使用完全相同的语法,那么它看起来就像这样(尽管在我看来这是一个非常毫无意义的练习)。

IList<int> yourList = Arrays.AsList(existingIntArray);
IList<int> anotherList = Arrays.AsList(1, 2, 3, 4, 5);

// ...

public static class Arrays
{
    public static IList<T> AsList<T>(params T[] source)
    {
        return source;
    }
}

答案 1 :(得分:7)

int[] a = new int[] { 1, 2, 3, 4, 5 };
List<int> list = a.ToList(); // Requires LINQ extension method

//Another way...
List<int> listNew = new List<int>(new []{ 1, 2, 3 }); // Does not require LINQ

请注意,LINQ或更高版本中提供了.NET 3.5

更多信息

答案 2 :(得分:1)

不确定是否要根据Devendra的答案将数组转换为列表,或者一次性创建一个新的填充列表,如果它是第二个,那么这样做:

new List<int>(){1, 2, 3, 4, 5};

实际上,填充集合的大括号语法将填充数组,字典等...

答案 3 :(得分:0)

要创建单项数组,只需执行以下操作:

long[] arr = new[] { 1L };

答案 4 :(得分:0)

return new List<int> {A,B};

答案 5 :(得分:-1)

该静态方法的实现如下所示。

public static <T> List<T> asList(T... a) {
return new ArrayList<T>(a);
}

您可以使用C#中的方法asList编写相同的实用程序类,或者使用Massif提供的解决方案。

public static class Arrays {
      public static List<T> asList<T>(params T[] a)
        {
            return new List<T>(a);

        }
}