2014-03-31 41 views
0

我正在使用Visual Studio 12開發我的個人項目。使用C#在ASP.net中進行編碼。從csv文件中檢索數據不一致

當我從csv文件中檢索數據並將其顯示在圖表上時,它顯示拉出並顯示的記錄總數爲160.然後,我轉到csv文件並使用與我有相同的過濾器進行搜索最初完成。我回來的結果是458條記錄。

所以我似乎並不明白的是,我如何使用linq將數據從csv和458記錄中提取出來,當我在excel中直接搜索時。

這是LINQ代碼,即時通訊使用:

var myfavitems = collection_of_objects.Where(a => a.GotCar == "1").ToList(); 
      foreach (var t in myfavitems.GroupBy(a => a.Metal_Type)) 
      { 
      Do something/ display on graph 
      } 

可能有人請引導我。在此先感謝:)

+0

手動過濾CSV文件後,有多少種不同的金屬類型?您是否也手動將groupby應用於文件? –

+0

有458種不同的金屬類型(不管它們的組成如何)。是的,我做了一個手動groupby到文件,這給了我458。但是,只要我應用該代碼,答案完全改變 – Timetraveller

回答

1

您可能總共有458項。在這458個項目中,金屬類型有160組項目。驗證:

var myfavitems = collection_of_objects.Where(a => a.GotCar == "1").ToList(); 

// let us know this value. is this 458? 
int totalItemsCount = myfavitems.Count; 

var groupedItems = myfavitems.GroupBy(a => a.Metal_Type); 

// let us know this value. is this 160? 
int totalGroupsOnChart = groupedItems.Keys.Count(); 

foreach (var t in groupedItems) 
{ 
// Do something/ display on graph 
} 
+0

totalItemsCount給我160和totalGroupsOnChart給我2.我想我要重寫我的代碼,以拉動數據只是incase。不過謝謝你的回答Raja。非常感激。 – Timetraveller

+0

collection_of_objects.Count()的值是什麼? –

+0

16000是我得到包括gotcar ==「0」。我也發現它爲什麼會吐出不正確的結果。這是因爲csv文件在兩列中有逗號,這意味着它有額外的兩列。現在我已經刪除了逗號並且吐出的答案是正確的 – Timetraveller