2014-03-31 3 views
0

Visual Studio 12를 사용하여 개인 프로젝트를 개발 중입니다. C#을 사용하여 ASP.net에서 코딩.CSV 파일에서 데이터를 가져올 때 일관성이 없음

csv 파일에서 데이터를 검색하여 차트에 표시하면 끌어온 총 레코드 수가 160임을 나타냅니다. 그러면 csv 파일로 이동하여 동일한 필터를 사용하여 검색합니다 처음에 끝났어. 내가 얻은 결과는 458 레코드입니다.

그래서 이해가 안되는 것은 바로 Excel에서 검색 할 때 linq을 사용하여 CSV 및 458 레코드에서 데이터를 가져 오는 방법입니다.

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 
      } 

누군가가 나를 인도 시겠어요 :

이 임 사용하는 LINQ 코드입니다. 미리 감사드립니다 :)

+0

수동으로 CSV 파일을 필터링 한 후에 몇 개의 고유 한 금속 형식이 있습니까? 파일에 groupby도 수동으로 적용 했습니까? –

+0

458 개의 다른 금속 유형이 있습니다 (구성에 관계없이). 네, 저도 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를 준다. 나는 데이터를 꺼내기 위해 코드를 다시 작성하려고한다. 그럼에도 불구하고 당신의 대답 Raja 주셔서 감사합니다. 매우 감사. – Timetraveller

+0

collection_of_objects.Count()의 값은 무엇입니까? –

+0

16000은 gotcar == "0"을 포함하여 내가 얻는 것입니다. 또한 나는 왜 그것이 잘못된 결과를 뱉어 내고 있는지 발견했습니다. 그것은 csv 파일에 쉼표가 두 열에 있었기 때문에 두 개의 열이 추가되었음을 의미했습니다. 이제 나는 쉼표를 제거했으며 출력 된 답변은 정확합니다. – Timetraveller

관련 문제