首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于另一个查询迭代字符而不是值的不同项的列表及其计数?

基于另一个查询迭代字符而不是值的不同项的列表及其计数?
EN

Stack Overflow用户
提问于 2015-08-27 17:50:59
回答 1查看 43关注 0票数 0

我有一个详细信息页面,它从几个表中输入数据。我希望它返回一个表的完整列表,然后根据视图的不同部分中的类别将列表分割出来。我没有问题把完整的清单拿回来:

代码语言:javascript
复制
var query = string.Format("Select C.* from Cards C Left Join CardDecks CD ON CD.CardID = C.CardID Where DeckID = {0}", id);
            var cardlist = db.Cards.SqlQuery(query).ToList();

这又带来了苹果,橙,橙,柠檬之类的东西。当我试着把它分割出来的时候,我想要的是:

  • 4x苹果
  • 2×橘子
  • 1倍石灰等 var creaturelist =“";var list = creatures.Select(t => t.Title).ToList();var节= list.GroupBy(c => c,(a,b) =>新的{ Title = a,Count = b.Count() };} var vm =新的ViewDeck();vm.Deck = deck;vm.CardList = cardlist;vm.Creatures = creaturelist;返回视图(Vm);

我的视图模型:

代码语言:javascript
复制
public class ViewDeck
    {
        public Deck Deck { get; set; }
        public Card Cards { get; set; }
        public CardDeck CardDecks { get; set; }
        public IList<Card> CardList { get; set; }
        public dynamic Creatures { get; set; }
    }

有此问题的意见部分:

代码语言:javascript
复制
CREATURES<br />
         @foreach (var item in Model.Creatures)
         {
            @Model.Creatures<br />
         }

我得到的结果是重复最后一次计数加上标题,就像1xLime一样重复,因为标题中有许多字符。我不明白为什么它贯穿于标题的每一个字符,而不是仅仅抓住标题的全部价值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-27 18:01:15

必须将模型中的Creatures定义为列表而不是string,然后通过在循环中添加项来生成列表:

代码语言:javascript
复制
var creaturelist = new List<string>();
var list = creatures.Select(t => t.Title).ToList();
var section = list.GroupBy(c => c, (a, b) => new { Title = a, Count = b.Count() });

foreach (var item in section)
{
    creaturelist.Add(string.Format("{0}x {1}", item.Count, item.Title));
}
var vm = new ViewDeck();
vm.Deck = deck;
vm.CardList = cardlist;
vm.Creatures = creaturelist;
return View(vm);

在视野中

代码语言:javascript
复制
CREATURES<br />
@foreach (var item in Model.Creatures)
{
   @item<br />
}

您可以在没有循环的情况下创建列表:

代码语言:javascript
复制
var creaturelist = 
    list.GroupBy(c => c, (a, b) => string.Format("{0}x {1}", b.Count(), a)).ToList();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32256249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档