Não é possível produzir um gráfico usando o linq no csharp
Eu estou codificando no Microsoft Visual Studio 12 no asp.net usando c # e um noob nele.
Isto é o que o arquivo csv parece
ID, Engine Type, Car
111,vtec, 1
131,vtec, 1
157,boxer,1
148,boxer,1
167,vtec,1
158,,0
107,,0
O ID deve ser um autonumber genérico, o Engine Type deve ser uma string de tipo e eu não sei o que o Car deve, pois consiste em 1 e 0 que representam Boolean. Isso significa que 1 cliente tem um carro e 0 significa que o cliente não tem carro.
É assim que eu crio uma lista disso.
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();
Eu crio um array simples que consiste em ID, Engine Type, Car convertendo para uma lista usandoToList()
e, em seguida, vinculá-lo a uma lista suspensa usando este código:
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();
O usuário seleciona Car e deve me fornecer o gráfico que tem o tipo de mecanismo no eixo x e o total no eixo y.
O problema: A coluna consiste em 1s e 0s que significam se o cliente tem um carro (1) ou não (0).
Gostaria de ver quantos usuários têm tipos diferentes de tipos de mecanismos e vinculá-los a um, digamos, um gráfico de colunas. Portanto, os dados devem ser exibidos no eixo x, o tipo de mecanismo e o eixo y devem ter o total. de acordo com os dados, existem 3 vtecs e 2 pugilistas. Então vtecs representam uma coluna com 3 total e boxers com 2.
Eu uso essa consulta de linq e o seguinte código de ligação de gráfico.
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();
// ...??
O erro vem no ponto em que estou lendo minhas colunas dos arquivos csv. O erro dizFormat 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])
}
Eu não sei o que está errado com essa afirmação. Alguém poderia me ajudar.