ASP.Net IEnumerable List:将值存储到图表中

时间:2011-08-27 22:38:40

标签: asp.net-mvc list linq charts ienumerable

我有一个我的图表的x值数组和一个包含y值的Linq to Entity LIST。如何访问我的列表以将其值添加到图表中。这就是我到目前为止所做的:

                //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 个答案:

答案 0 :(得分:1)

好像你想要合并X值列表和Y值列表:

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

现在,X中有YpointList个属性,可以将其用于制图:

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);
}