我有這樣的代碼:如何使計算兩行之間在特定的列在列表中
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
namespace CsvDemo
{
class Program
{
static void Main(string[] args)
{
List<DailyValues> values = File.ReadAllLines("C:\\Users\\Josh\\Sample.csv")
.Skip(1)
.Select(v => DailyValues.FromCsv(v))
.ToList();
}
}
class DailyValues
{
DateTime Date;
decimal Open;
decimal High;
decimal Low;
decimal Close;
decimal Volume;
decimal AdjClose;
public static DailyValues FromCsv(string csvLine)
{
string[] values = csvLine.Split(',');
DailyValues dailyValues = new DailyValues();
dailyValues.Date = Convert.ToDateTime(values[0]);
dailyValues.Open = Convert.ToDecimal(values[1]);
dailyValues.High = Convert.ToDecimal(values[2]);
dailyValues.Low = Convert.ToDecimal(values[3]);
dailyValues.Close = Convert.ToDecimal(values[4]);
dailyValues.Volume = Convert.ToDecimal(values[5]);
dailyValues.AdjClose = Convert.ToDecimal(values[6]);
return dailyValues;
}
}
}
- 的
File.ReadAllLines
讀取來自CSV所有行文件轉換成字符串數組。 .Skip(1)
跳過標題行。.Select(v => DailyValues.FromCsv(v))
使用Linq選擇每一行並使用FromCsv
方法創建一個新的DailyValues
實例。這會創建一個System.Collections.Generic.IEnumerable<CsvDemo.DailyValues>
類型。- 最後,
.ToList()
將IEnumerable轉換爲List來匹配您想要的類型。
但我的問題是如何在兩個單元之間進行計算。例如,我想在第3列中添加第2和第3行,並將結果顯示在最後一列中。
從你的解釋看來,你只需要迭代t通過'Main'中的'values'並手動進行計算。這是重複添加還是僅僅一次?根據這一點,這種做法會有所不同。 – Andrew 2015-02-11 13:36:24
我有一個csv文件,我想在特定列中的兩行之間進行添加,並且我想要在最後一列中顯示結果。任何想法? – Gio7 2015-02-11 13:38:48
是的,你說過,給我們一個例子,使用數據,輸入和所需的輸出 – Jamiec 2015-02-11 13:39:18