我如何将一个长变量转换成列表? 代码:如何从一个长变量创建一个列表<long>?
long taskId = long.Parse(LocalWorkListVM.ActiveTask.TaskId, CultureInfo.InvariantCulture);
我需要将其转换成List<long>
因为我们的方法的一个期望列表通过。
我如何将一个长变量转换成列表? 代码:如何从一个长变量创建一个列表<long>?
long taskId = long.Parse(LocalWorkListVM.ActiveTask.TaskId, CultureInfo.InvariantCulture);
我需要将其转换成List<long>
因为我们的方法的一个期望列表通过。
所以你需要一个List<long>
但你只有一个变量。这很简单,你可以使用collection initializer语法:
List<long> longs = new List<long>{ taskId };
或更详细的与List.Add
:
List<long> longs = new List<long>();
longs.Add(taskId);
试试这个:
List<long> somelist = new List<long>{long.Parse(LocalWorkListVM.ActiveTask.TaskId, CultureInfo.InvariantCulture)};
这将创建一个新的List
,并初始化它解析的值。
是否真的需要是List
?如果有办法修改该方法来接受IEnumerable
,事情会变得更容易和更清晰(或者如果IEnumerable
还不够,可能会考虑IList
)。
所以考虑到这一点,你有一堆选择。
可以使用Enumerable
类的静态方法Repeat
:
Enumerable.Repeat(taskId, 1);
您可以编写自己的扩展方法:
static class IEnumerableExtensions
{
public static IEnumerable<T> ToEnumerable<T>(this T item)
{
yield return item;
}
}
// and use it as:
taskId.ToEnumerable()
当然,这种扩展方法可以进行修改,以返回List
或IList
或任何您确切的需求。
此外,您可以创建功能,只需要一个long
代替List
的一个新的过载,沿此线的地方:
public void MyMethod(List<long> list)
{
// Do something
}
public void MyMethod(long item)
{
MyMethod(new List<long>{ item });
}
最后,有一个叫params
不错的关键字:
public void MyMethod(params long[] items)
{
// call to the previously mentioned extension method
MyMethod(items.ToEnumerable());
}
public void MyMethod(IEnumerable<long> items)
{
// Do stuff
}
这种解决方案具有的优点与单个long
参数工作,逗号分隔long
参数或与IEnumerable<long>
。
你是什么意思'长'到'列表'? “List”是一个集合,“long”是一个单一的变量。 –
什么意思_“转换成_”,你的意思是_add to_? –
是的,long是一个变量。我需要将它转换成列表,因为我们的方法期望列表通过 –
Sandeep