C# 不同项的列表,其计数基于另一个迭代字符而不是值的查询?
我有一个详细信息页面,从几个表中引入数据。我希望它返回一个表的完整列表,然后根据视图不同部分中的类别分割出列表。我没有问题带回完整的清单:C# 不同项的列表,其计数基于另一个迭代字符而不是值的查询?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个详细信息页面,从几个表中引入数据。我希望它返回一个表的完整列表,然后根据视图不同部分中的类别分割出列表。我没有问题带回完整的清单: 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).ToLi
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();
它带来了苹果,苹果,苹果,苹果,橘子,橘子,酸橙。当我试着把它分割出来时,我想要的是:
- 4个苹果
- 2个橙子
- 石灰等
var creaturelist = " "; 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 = 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);
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; }
}
公共类ViewDeck
{
公共甲板{get;set;}
公共卡{get;set;}
公共卡片组卡片组{get;set;}
公共IList卡片列表{get;set;}
公共动态对象{get;set;}
}
有问题的观点部分:
CREATURES<br />
@foreach (var item in Model.Creatures)
{
@Model.Creatures<br />
}
生物
@foreach(Model.biotes中的变量项)
{
@模型生物
}
我得到的结果是重复上一次计数加上标题,就像在标题中重复1个字符一样。我不明白为什么它要遍历标题的每个字符,而不是仅仅获取标题的整个值。您必须在模型中将
生物定义为列表而不是字符串,然后通过在循环中添加项目生成列表:
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);
必须在模型中将生物
定义为列表而不是字符串
,然后通过在循环中添加项目生成列表:
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);
必须在模型中将生物
定义为列表而不是字符串
,然后通过在循环中添加项目生成列表:
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);
必须在模型中将生物
定义为列表而不是字符串
,然后通过在循环中添加项目生成列表:
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);
关于sql注入的强制性警告。您应该使用参数,而不是格式化查询字符串。如果正在访问的表不包含用户输入值,SQL注入是否会造成问题?很抱歉,我一直在努力阅读有关安全性的文章,有很多东西需要学习。对于您的查询,由于id是一个数值,所以可能性很低。但使用参数只是一个好习惯。参数还负责容易弄乱的格式。sql注入的强制性警告。您应该使用参数,而不是格式化查询字符串。如果正在访问的表不包含用户输入值,SQL注入是否会造成问题?很抱歉,我一直在努力阅读有关安全性的文章,有很多东西需要学习。对于您的查询,由于id是一个数值,所以可能性很低。但使用参数只是一个好习惯。参数还负责容易弄乱的格式。sql注入的强制性警告。您应该使用参数,而不是格式化查询字符串。如果正在访问的表不包含用户输入值,SQL注入是否会造成问题?很抱歉,我一直在努力阅读有关安全性的文章,有很多东西需要学习。对于您的查询,由于id是一个数值,所以可能性很低。但使用参数只是一个好习惯。参数还负责容易弄乱的格式。sql注入的强制性警告。您应该使用参数,而不是格式化查询字符串。如果正在访问的表不包含用户输入值,SQL注入是否会造成问题?很抱歉,我一直在努力阅读有关安全性的文章,有很多东西需要学习。对于您的查询,由于id是一个数值,所以可能性很低。但使用参数只是一个好习惯。参数还负责处理容易弄乱的格式。