Vb.net 如何使用LINQ从SQL Server获取唯一的首字母和以该字母开头的名称计数?
几天前我在玩ASP.NETMVC1.0。我从一个名为“Contacts”的表DB开始,它的结构非常简单,例如标题、全名、姓氏、电子邮件、电话、地址等 我用LINQ作为我的模型 在我的主视图中,我想显示一个字母表列表,其中有匹配的全名,以该字母表加上全名计数开始。如下所示: A-(2)Vb.net 如何使用LINQ从SQL Server获取唯一的首字母和以该字母开头的名称计数?,vb.net,linq,grouping,Vb.net,Linq,Grouping,几天前我在玩ASP.NETMVC1.0。我从一个名为“Contacts”的表DB开始,它的结构非常简单,例如标题、全名、姓氏、电子邮件、电话、地址等 我用LINQ作为我的模型 在我的主视图中,我想显示一个字母表列表,其中有匹配的全名,以该字母表加上全名计数开始。如下所示: A-(2) D-(4) J-(1) 等等显示器的一个特点是我不想显示那些没有名字开头的字母表 我尝试了几个问题,但没有成功。 感谢您对解决此问题的任何帮助。请提供VB.NET语言的代码 谢谢 var query = f
D-(4)
J-(1)
等等显示器的一个特点是我不想显示那些没有名字开头的字母表 我尝试了几个问题,但没有成功。 感谢您对解决此问题的任何帮助。请提供VB.NET语言的代码 谢谢
var query = from c in contacts
group c by c.FullName[0] into cg
select new { FirstChar = cg.Key, Count = cg.Count() };
应该有用
应该有效有一个非常类似的例子:
public void Linq41() {
string[] words = { "blueberry", "chimpanzee", "abacus", "banana", "apple", "cheese" };
var wordGroups =
from w in words
group w by w[0] into g
select new { FirstLetter = g.Key, Words = g };
foreach (var g in wordGroups) {
Console.WriteLine("Words that start with the letter '{0}':", g.FirstLetter);
foreach (var w in g.Words) {
Console.WriteLine(w);
}
}
}
您必须将select语句中的单词=g更改为Count=g.Count,因此您只能查询组中项目的总和。有一个非常类似的示例:
public void Linq41() {
string[] words = { "blueberry", "chimpanzee", "abacus", "banana", "apple", "cheese" };
var wordGroups =
from w in words
group w by w[0] into g
select new { FirstLetter = g.Key, Words = g };
foreach (var g in wordGroups) {
Console.WriteLine("Words that start with the letter '{0}':", g.FirstLetter);
foreach (var w in g.Words) {
Console.WriteLine(w);
}
}
}
您必须将select语句中的单词=g更改为Count=g.Count,因此只能查询组中项目的总和。在VB.NET中:
Dim FirstLetterCounts = From c In contacts _
Group c By Key = c(0) Into NameGroup _
Select FirstLetter = Key, Count = NameGroup.Count()
For Each g In FirstLetterCounts
Console.WriteLine("First Letter = {0}, Count = {1}", g.Key, g.Count)
Next
在VB.NET中:
Dim FirstLetterCounts = From c In contacts _
Group c By Key = c(0) Into NameGroup _
Select FirstLetter = Key, Count = NameGroup.Count()
For Each g In FirstLetterCounts
Console.WriteLine("First Letter = {0}, Count = {1}", g.Key, g.Count)
Next
嗨,谢谢你的回复。我正在测试您在LinqPad aginst my DB中提供的代码。这就是我得到的错误:“类'LINQPad.User.Contacts'没有默认属性,因此无法编制索引。”您好,感谢您的回复。我正在测试您在LinqPad aginst my DB中提供的代码。这就是我得到的错误:“类'LINQPad.User.Contacts'无法索引,因为它没有默认属性。”代码工作正常。谢谢。如果你能提供VB版本的代码,请这样做。代码工作完美。谢谢。如果你能提供VB版本的代码,请这样做。