簡體   English   中英

如何將CSV數據存儲到C#中的數組中?

[英]How to store CSV data into an array in C#?

我有一個包含9列的CSV文件。 (日期,DrawNumber,N1,N2,N3,N4,N5,N6,B1)

在上述列下方是55行數據。

行中的數據由(,)分隔符分隔。


1)在控制台應用程序中,用戶將輸入6/7的數字將被存儲。

2)如何讀取CSV數據並將其保存到數組中,這樣我可以計算在整個CSV中(從用戶輸入的6或7個數字中)每個數字被發現了多少次這些列:N1,N2,N3,N4,N5,N6,B1)。 例如:數字33 =找到12次,數字14找到11次,...(以此類推,其余輸入的數字則如此)

3)從用戶將要輸入的6或7個數字中,我還必須查看(用戶輸入的)多少個數字將與CSV的每一行匹配。 換句話說,我必須匹配每行的組合(N1,N2,N3,N4,N5,N6,B1)


讀取和存儲數據以進行此類數據操作的最佳方法是什么? (您的示例代碼將不勝感激)?

提前致謝。

CSV數據示例:

CSV數據示例:

創建一個與列匹配的類,因此假設有9列意味着9個屬性。

public class CsvData
{
    public string column1 { get; set; }
    public string column2 { get; set; }
    public string column3 { get; set; }
    public string column4 { get; set; }
    public string column5 { get; set; }
    public string column6 { get; set; }
    public string column7 { get; set; }
    public string column8 { get; set; }
    public string column9 { get; set; }
}

現在以免將csv文件映射到CsvData對象的列表中

public List<CsvData> ReadCsv(string file)
{
    List<CsvData> collection = new List<CsvData>();
    using (var streamReader = new StreamReader(file))
    {
        while (!streamReader.EndOfStream)
        {
            string[] columns = streamReader.ReadLine().Split(';');

            CsvData data = new CsvData();
            data.column1 = columns[0];
            data.column2 = columns[1];
            data.column3 = columns[2];
            data.column4 = columns[3];
            data.column5 = columns[4];
            data.column6 = columns[5];
            data.column7 = columns[6];
            data.column8 = columns[7];
            data.column9 = columns[8];

            collection.Add(data);
        }
    }

    return collection;
}

現在用於計算包含數字或項的行

public int CountRowsWithTerm(List<CsvData> collection, string term)
{
    List<CsvData> RowsContainingTheTerm = collection.Where(row => row.column1 == term || row.column2 == term || row.column3 == term ||
                            row.column4 == term || row.column5 == term || row.column6 == term ||
                            row.column7 == term || row.column8 == term || row.column9 == term).ToList();
    return RowsContainingTheTerm.Count();
}

希望這有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM