2013-09-01 70 views
0

我有.csv文件。每行中的第一個值是DateTime。我如何使用Linq獲得最大(最新)值?請繼續或更改(如果它不需要使用讓關鍵字)我的查詢:Linq查詢獲取.csv文件中行間的最大值

var maxDT = from line in File.ReadLines(file) 
        let dt = DateTime.Parse(line.Split(',')[0]) 
       . 
       . 

回答

1

對於單個最大值

var dateTime = File.ReadAllLines(@"C:\\file.svc") 
.Select(l => DateTime.Parse(l.Split(',')[0])) 
.Max(); 

// query expression 
var date = (from line in File.ReadAllLines(@"C:\\file.csv") 
      let date = DateTime.Parse(line.Split(',').First()) 
      orderby date descending 
      select date).First() 

如果你需要說,前5名最多

var dates = File.ReadAllLines(@"C:\\file.svc") 
.Select(l => DateTime.Parse(l.Split(',')[0])) 
.OrderByDescending(d => d) 
.Take(count: 5); 
+0

'ReadAllLines'關閉文件爲你。 'ReadLines'沒有。 –

0

關於這樣的:

var maxDT = File.ReadLines (file) 
    .Select (line => DateTime.Parse (line.Split (',') [0])) 
    .Max();