Nie można utworzyć wykresu za pomocą linq w csharp
Koduję w Microsoft Visual Studio 12 w ASP.net przy użyciu c # i noob na to.
Tak wygląda plik csv
ID, Engine Type, Car
111,vtec, 1
131,vtec, 1
157,boxer,1
148,boxer,1
167,vtec,1
158,,0
107,,0
Identyfikator powinien być ogólną liczbą autonumerowania, typ silnika powinien być ciągiem typu i nie wiem, co powinno być Car, ponieważ składa się on z 1 i 0 reprezentujących Boolean. Oznacza to, że 1 klient ma samochód, a 0 oznacza, że klient nie ma samochodu.
W ten sposób tworzę listę.
var testingobject = (
from line in File.ReadAllLines("testing.csv").Skip(0)
let parts = line.Split(',')
select new
{
ID = parts[0],
Engine_Type = parts[1],
Car = parts[2] //should i put int32.parse(parts[2]) here
).ToList();
Tworzę prostą tablicę, która składa się z identyfikatora, typu silnika, samochodu i konwertuje go na listę za pomocąToList()
a następnie przypisz go do listy rozwijanej, używając tego kodu:
string[] testingddl = new string[] { "ID", "Engine Type", "Car" };
List<String> mytestinglist = testingddl.ToList();
var mytestin = from m in mytestinglist
select m;
DropDownList1.DataSource = mytestin.AsEnumerable();
DropDownList1.DataTextField = "";
DropDownList1.DataValueField = "";
DropDownList1.DataBind();
Użytkownik wybiera samochód i powinien dać mi wykres, który ma typ silnika w osi X i całkowity na osi y.
Problem: Kolumna składa się z 1 i 0, co oznacza, czy klient ma samochód (1), czy nie (0).
Chciałbym zobaczyć, ilu użytkowników ma różne typy silników i powiązać je z, powiedzmy, wykresem kolumnowym. Zatem dane powinny być wyświetlane na osi X, typ silnika, a oś y powinna mieć całkowitą wartość. według danych są 3 vtecy i 2 bokserki. Więc vtecs reprezentują kolumnę z 3 sumami i bokserami z 2.
Używam tego zapytania linq i następującego kodu powiązania wykresu.
if (tempval == "Car")// this is the current selected dropdown list value
{
var myfavitems = testingobject.Where(a => a.Car == "1").ToList();
foreach (var t in myfavitems.GroupBy(a => a.Engine_Type))
{
Series Series1 = new Series();
Chart1.Series.Add(Series1);
Chart1.Series[1].Points.AddXY(t.Key.ToString(), t.Count().ToString()).ToString();
Chart1.DataSource = myfavitems.AsEnumerable();
Chart1.Series[1].XValueMember = "Group Equipment Type";
Chart1.Series[1].YValueMembers = "Software";
Chart1.DataBind();
// ...??
Błąd pojawia się w momencie, gdy czytam moje kolumny z plików csv. Błąd mówiFormat exception was unhandled by user code: Input string was not in a correct format
select new
{
ID = parts[0],
Engine_Type = parts[1],
Car = Int32.Parse(parts[2])
}
Nie wiem, co jest nie tak z tym stwierdzeniem. Czy ktoś mógłby mi pomóc?