LINQ First() or Single() parameter

本文关键字:parameter Single or LINQ First | 更新日期: 2023-09-27 18:29:09

尝试从CSV文件中获取排序数据。除了"Side"列是字符串并且对于一个组是相同的之外,此代码运行良好。我不知道First()方法的Single()应该是什么参数。

    var stuff = from line in File.ReadLines(@"d:'tmp'4.csv").Skip(1)
                    let columns = line.Split(';')
                    select new
                    {
                        Time = columns[0],
                        Side = columns[2],
                        Qty = columns[3],
                        Symbol = columns[4],
                        Price = columns[5],
                    };
        var sorted = from line in stuff
                     group line by new { line.Time, line.Symbol }
                         into category
                         select new {
                             category.Key.Time,
                             category.Key.Symbol, 
                             Qty = category.Sum(p => Int32.Parse(p.Qty)),
                             Price = category.Average(p => double.Parse(p.Price)),
                             Side = ?????? };

LINQ First() or Single() parameter

Single如果发现多条记录,就会抛出异常,我认为这不是您想要的

First从列表中选择第一条记录,但如果集合为空,则SingleFirst都将引发"InvalidOperationException"异常。

所以我会在这里使用FirstOrDefault

Side = category.Select(p => p.Side).FirstOrDefault()