C# Cast IEnumerable<;类别>;列出<;字符串>;
我有一个C# Cast IEnumerable<;类别>;列出<;字符串>;,c#,casting,ienumerable,C#,Casting,Ienumerable,我有一个列表,我需要从列表中获取日期时间字符串的字符串[]: public interface ITick { DateTimeOffset DateTime { get; } } public interface IOhlcv : ITick { decimal Open { get; set; } decimal High { get; set; } decimal Low { get; set; } decimal
列表
,我需要从列表
中获取日期时间
字符串的字符串[]
:
public interface ITick
{
DateTimeOffset DateTime { get; }
}
public interface IOhlcv : ITick
{
decimal Open { get; set; }
decimal High { get; set; }
decimal Low { get; set; }
decimal Close { get; set; }
decimal Volume { get; set; }
}
//candles is a List<IOhlcv>
var candles = await importer.ImportAsync("FB");
我还可以得到日期时间的列表,如下所示:
var sd = candles.Select(i => i.DateTime).ToList();
有没有办法将列表转换为不循环的列表
我知道我可以这样做,但我正在努力避免循环:
List<string> dateTimeStringList = new List<string>();
foreach (var d in candles)
dateTimeStringList.Add(d.DateTime.ToString());
return dateTimeStringList ;
List dateTimeStringList=new List();
foreach(以烛光表示的变量d)
Add(d.DateTime.ToString());
返回日期时间字符串;
这个怎么办:
string[] x = from p in candles
orderby p.DateTime ascending
select p.DateTime.ToString()
你说得对,最后一个不会。我把它拿走了
有没有办法将列表
转换为列表
而不使用
循环
以下是您可以使用的方法:
List List=新列表();
添加(DateTime.Now);
var format=“yyyy-mmmm-dd”;
var stringList=list.Select(r=>r.ToString(format)).ToList();
您可以将上面的格式
替换为您最喜欢的格式。ToList
基本上可以looping@tukaef是的,它可以在引擎盖下进行,但不在我的代码中。是的,对不起,我认为OP关心的是性能,而不是代码。没有循环就无法将一个列表转换为另一个列表。为了避免不必要的循环,您可以将其转换为IEnumerable
。然后,您的代码应该接受IEnumerable
,而不是List
。本文可能有助于:
string[] x = from p in candles
orderby p.DateTime ascending
select p.DateTime.ToString()
List<DateTime> list = new List<DateTime>();
list.Add(DateTime.Now);
var format = "yyyy MMMMM dd";
var stringList = list.Select(r => r.ToString(format)).ToList();