Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我能';无法获取一般列表查询的结果_C#_Linq_Generic List - Fatal编程技术网

C# 我能';无法获取一般列表查询的结果

C# 我能';无法获取一般列表查询的结果,c#,linq,generic-list,C#,Linq,Generic List,我正在将这些数据输入这个类的通用列表中 public class UTCTime { public DateTime UTCBas { get; set; } public DateTime UTCSon { get; set; } public TimeSpan Fark { get; set; } public char Sezon { get; set; } public UTCTime(string UTCStart , string UTCSt

我正在将这些数据输入这个类的通用列表中

public class UTCTime
{
    public DateTime UTCBas { get; set; }
    public DateTime UTCSon { get; set; }
    public TimeSpan Fark { get; set; }
    public char Sezon { get; set; }

    public UTCTime(string UTCStart , string UTCStop , string Fark , char Sezon)
    {
        this.UTCBas = Convert.ToDateTime(UTCStart);
        this.UTCBas = Convert.ToDateTime(UTCStop);
        this.Fark = TimeSpan.Parse(Fark);
        this.Sezon = Sezon;
    }

    public override string ToString()
    {
        return $"{this.UTCBas.ToString(@"yyy-MM-dd")} - {this.UTCBas.ToString(@"yyy-MM-dd")} - {this.Fark} - {this.Sezon}";
    }
}
我想将LINQ查询的结果添加到将从此clas创建的通用列表中

public static void MTDoldur()
{
    MarketTime.Add(new UTCTime("2000-04-01", "2000-10-28", "03:00", 'Y'));
    MarketTime.Add(new UTCTime("2000-10-28", "2001-03-31", "02:00", 'K'));
    MarketTime.Add(new UTCTime("2001-03-31", "2001-10-27", "03:00", 'Y'));
    MarketTime.Add(new UTCTime("2001-10-27", "2002-04-06", "02:00", 'K'));
    MarketTime.Add(new UTCTime("2002-04-06", "2002-10-26", "03:00", 'Y'));
    MarketTime.Add(new UTCTime("2002-10-26", "2003-04-05", "02:00", 'K'));
    MarketTime.Add(new UTCTime("2003-04-05", "2003-10-25", "03:00", 'Y'));
    MarketTime.Add(new UTCTime("2003-10-25", "2004-04-03", "02:00", 'K'));
}
我在VAR数据类型中提取查询类型不会失败,但我无法在屏幕上打印数据并将其分配给变量。 我想将结果传输到泛型列表,并将数据从VAR数据类型导出到变量。 我想不出我的问题,我在等你的帮助

public class SonucTime
{
    public TimeSpan Fark { get; set; }
    public char Sezon { get; set; }

    public SonucTime(TimeSpan Fark , char Sezon)
    {
        this.Fark = Fark;
        this.Sezon = Sezon;
    }

    public override string ToString()
    {
        return $"Fark : {this.Fark}   Sezon : {this.Sezon}";
    }
}
static void Main(字符串[]args)
{
MTDoldur();
DateTime xT=新的DateTime();
xT=新的日期时间(2003,12,21);
var sonuc=(来自MarketTime中的m)

其中xT>=m.UTCBas&&xT您在UTCTime构造函数中出现“复制过去”错误-UTCSon未初始化

需要修复构造函数:

static void Main(string[] args)
{
    MTDoldur();

    DateTime xT = new DateTime();
    xT = new DateTime(2003, 12, 21);

    var sonuc = (from m in MarketTime 
                 where xT >= m.UTCBas && xT <= m.UTCSon
                 select new { m.Fark, m.Sezon }).ToList(); 
}
public UTCTime(字符串UTCStart、字符串UTCStop、字符串Fark、字符Sezon)
{
this.UTCBas=Convert.ToDateTime(UTCStart);

this.UTCSon=Convert.ToDateTime(UTCStop);/=m.UTCBas&&xT您在UTCTime构造函数中出现“复制过去”错误-UTCSon未初始化

需要修复构造函数:

static void Main(string[] args)
{
    MTDoldur();

    DateTime xT = new DateTime();
    xT = new DateTime(2003, 12, 21);

    var sonuc = (from m in MarketTime 
                 where xT >= m.UTCBas && xT <= m.UTCSon
                 select new { m.Fark, m.Sezon }).ToList(); 
}
public UTCTime(字符串UTCStart、字符串UTCStop、字符串Fark、字符Sezon)
{
this.UTCBas=Convert.ToDateTime(UTCStart);

this.UTCSon=Convert.ToDateTime(UTCStop);//=m.UTCBas&&xT
new{m.Fark,m.Sezon}
创建了一个匿名类型,我认为这不是您想要的。我想您应该创建一个
SonucTime
的实例。这将是
new SonucTime(m.Fark,m.Sezon)
。匿名类型类似于我们无法传递的临时类型,这就是为什么您无法将结果传递给另一个方法。如果您的查询选择了
new SonucTime
,则结果是
IEnumerable
,然后如果您添加
ToList()
你得到了
列表
@ScottHannen谢谢你的评论。你能给我举个例子吗?
新建{m.Fark,m.Sezon}
创建了一个匿名类型,我认为这不是你想要的。我想你想要创建一个
SonucTime
的实例。那就是
新建SonucTime(m.Fark,m.Sezon)
。匿名类型类似于我们无法传递的临时类型,这就是为什么您无法将结果传递给另一个方法。如果您的查询选择了
new SonucTime
,则结果是
IEnumerable
,然后如果您添加
ToList()
你得到了
列表
@ScottHannen谢谢你的评论。你能给我举个例子吗?非常感谢你提供我的解决方案。直接使用它可以提供更好的性能?或者将结果发送到通用列表而不是VAR类型更有效。记录计数将产生数十亿次查询。非常感谢用于提供我的解决方案。直接使用它可以提供更好的性能?或者将结果发送到通用列表而不是VAR类型更有效。记录计数将产生数十亿次查询。
var sonuc = (from m in MarketTime 
            where xT >= m.UTCBas && xT <= m.UTCSon
            select new SonucTime(m.Fark, m.Sezon))
            .ToList();
/*
result:
sonuc
Count = 1
[0] [SonucTime]:{Fark : 02:00:00   Sezon : K}
Fark [TimeSpan]:{02:00:00}
Sezon [char]:75 'K'
*/