C# 将Enumerable.Range转换为字符串列表
在Linq中,如何将Enumerable.Range(1,31)转换为字符串列表?尝试以下操作:C# 将Enumerable.Range转换为字符串列表,c#,linq,C#,Linq,在Linq中,如何将Enumerable.Range(1,31)转换为字符串列表?尝试以下操作: var list = Enumerable.Range(1, 31).Select(n => n.ToString()).ToList(); string list = string.Join(string.Empty, Enumerable.Range(1, 31)); 对不起,我只转换成字符串 var list = string.Join(",", Enumerable.Range(
var list = Enumerable.Range(1, 31).Select(n => n.ToString()).ToList();
string list = string.Join(string.Empty, Enumerable.Range(1, 31));
对不起,我只转换成字符串
var list = string.Join(",", Enumerable.Range(1, 31)).Split(',').ToList();
static void Main(字符串[]args)
{
列表测试;
test=Enumerable.Range(1,31)。选择(n=>n.ToString()).ToList();
foreach(测试中的var项目)
{
控制台写入线(项目);
}
Console.ReadLine();
}
这个为我打印了31行:)
因为n不是从IEnumerable继承的,所以测试是通过延迟执行来实现的。GetRange返回的值是执行操作所需的信息。在通过调用对象的GetEnumerator方法或使用foreach枚举对象之前,不会执行查询。@JimLahman,虽然您是对的,但在给定的代码中,查询是在
.ToList()
方法中执行的,该方法位于foreach
之前。在执行foreach
时,列表已经包含了所有的字符串值。对我来说,连接和拆分似乎效率相当低。为什么不直接使用选择
?
static void Main(string[] args)
{
List<string> test;
test = Enumerable.Range(1, 31).Select(n => n.ToString()).ToList();
foreach (var item in test)
{
Console.WriteLine(item);
}
Console.ReadLine();
}