ASP.Net IEnumerable List: хранить значения в диаграмме - PullRequest
0 голосов
/ 28 августа 2011

У меня есть массив моих значений x для моей диаграммы и СПИСОК Linq to Entity, который содержит мои значения y. Как мне получить доступ к своему списку, чтобы добавить их значения в график. это то, что я до сих пор:

                //Get restaurant name & count of votes for each restaurant
                BL.BLaddVote obj1 = new BLaddVote();
                var votesList = obj1.countVotes();

                //Set chart x & y values:  here is where I'm stuck
                chtVotes.Series[0].Points.Add(<X VALUES>, <Y VALUES>);

Как мне получить значения из моего анонимного списка в моем графике? Заранее спасибо.

Кроме того, вот запрос для извлечения данных:

    public class NumVotesInfo
    {
        public string RestName { get; set; }
        public int NumVotes { get; set; }
    }

    public IEnumerable<NumVotesInfo> countVotes()
    {
        //Return the count of the number of reviews for a specific restaurant ID
        var NumVotes = from VOTE in db.VOTEs
                         group VOTE by VOTE.VOTE_VALUE into t
                         select new NumVotesInfo { RestName = t.Key, NumVotes = t.Count() };

        return NumVotes.ToList();
    }

1 Ответ

1 голос
/ 28 августа 2011

Похоже, вы хотите объединить список значений X и список значений Y:

var pointList = myXValues.Zip(votesList, (a,b) => new { X = a, Y = b.NumVotes });

Теперь у вас есть X и Y свойства в вашем pointList и вы можете использовать его для построения диаграмм:

foreach(var point in pointList)
    chtVotes.Series[0].Points.Add(point.X, point.Y);

В качестве альтернативы, при условии, что оба списка имеют одинаковую длину, вы можете просто использовать индекс. Для этого потребуется countVotes(), чтобы вернуть список, а не IEnumerable, вы можете создать список, используя ToList():

var votesList = obj1.countVotes().ToList();

Теперь вы можете просто использовать индекс:

for(int i = 0; i< votesList.Count, i++)
{
      chtVotes.Series[0].Points.Add(myXValues[i], votesList[i].NumVotes);
}
...