2015-11-23 48 views
0

在我的項目中,我通過Arduino測量太陽能電池板的電流和電壓,並將這些值轉換爲將此值保存在CSV文件中的c#代碼。 由於使用串行通信,我得到了很多重複值或不想要的值。 我在C#項目已經實現了完全一樣的代碼本文 http://www.codeproject.com/Articles/415732/Reading-and-Writing-CSV-Files-in-Csharp ,而我也用它像這樣在我的代碼(讀取電流和電壓):控制發送數據到C#中的CSV文件

CsvRow row = new CsvRow(); 
row.Add(PanelsVoltage + ""); 
row.Add(MeasuredCurrent + ""); 
writer.WriteRow(row); 
writer.Flush(); 

我如何控制自己的價值觀這在我的C#代碼中發送到CSV文件。 我將不勝感激任何幫助

+0

爲什麼你有「很多重複值或不想要的」「因爲使用串行通信」?你只能得到你在另一端發送的內容,所以你應該只收到你發送的數據.... – frarugi87

回答

0

唯一明智的方法就是將某些已寫入CSV的值存儲到某處,然後在寫入文件之前在代碼中過濾出重複項。

否則,最終會出現大量文件讀取以檢查CSV文件的內容。

如果我是你,我會將數據存儲在內存以及CSV文件中,然後檢查內存中的數據,看看在添加到CSV之前它是否是重複的。例如,你可能有一個對象PanelReading,它存儲當前和電壓,然後List<PanelReading>,你的程序存儲這些PanelReading對象(從串行數據創建它們);並檢查重複項:

list.Contains(p=>p.Current == readValue.Current && p.Voltage == readValue.Voltage) 

類似的東西。