2014-03-31 22 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