为什么赢了';这个LINQ不返回一个特定的首字母吗?

为什么赢了';这个LINQ不返回一个特定的首字母吗?,linq,Linq,我有以下LINQ:- private static IEnumerable<AlphabetisedContact> _getGroupedContacts(int clientid) { return _getLiteContacts(clientid).GroupBy(c => c.Name[0]).Select( g => new AlphabetisedContact { Initial = g.Key, Contacts = g.ToList() }).

我有以下LINQ:-

private static IEnumerable<AlphabetisedContact> _getGroupedContacts(int clientid)
{
  return _getLiteContacts(clientid).GroupBy(c => c.Name[0]).Select(
  g => new AlphabetisedContact { Initial = g.Key, Contacts = g.ToList() }).OrderBy(g => g.Initial);  }
我希望第一个
Initial
块包含我的
A
联系人数。。。例如,如果我添加一个名为
Bryn McWinkawonk
的新联系人,他会出现,但
Alice Alikemen
不会

edit
\u getLiteContacts()
调用使用传递的参数访问数据库:-

private static IEnumerable<LiteContact> _getLiteContacts(int clientid)
        {
            return _getContacts(clientid).Select(c => new LiteContact()
                    { ContactId = c.ContactId, ContactType = Enum.GetName(typeof (ContactTypeObject.Type), c.Type), Name = c.Name, PrimaryContact = _marshallFirstContactDetail(c.ContactId), 
                        Avatar = c.Avatar, UserId = c.UserId }).ToList();
        }
\u marshallFirstContactDetail()
:-

\u marshallContactDetails()
:-


感谢您的帮助。

好的。首先,向花时间看这个问题的人道歉。原来问题出在上面的一层,在那里发生了一些分页。在
GetGroupedContacts
(=>
\u GetGroupedContacts()
)的结果上运行了一段LINQ,如下所示:-

GetGroupedContacts()。获取(1000)。跳过(1)

这很自然,总是跳过第一个结果


完成扳手Doobert签字

如果您有任何以
a
开头的联系人,就可以了-是否要添加示例数据和预期输出?@BrokenGlass已按要求更新;)还需要示例输入-您的代码应该可以工作。另外,您只显示JSON输出—您的问题可能还存在于从C#到JSON的转换中。您是否逐行查看数据“消失”的位置?
public
方法访问此
private
,public由WebAPI直接调用<代码>字母联系人只是一个字符和自定义对象列表。我将进行编辑以显示调用/输入的结果。
\u getLiteContacts()
测试了linq部分(仅使用字符串列表和匿名类型),它工作正常。。。
private static IEnumerable<LiteContact> _getLiteContacts(int clientid)
        {
            return _getContacts(clientid).Select(c => new LiteContact()
                    { ContactId = c.ContactId, ContactType = Enum.GetName(typeof (ContactTypeObject.Type), c.Type), Name = c.Name, PrimaryContact = _marshallFirstContactDetail(c.ContactId), 
                        Avatar = c.Avatar, UserId = c.UserId }).ToList();
        }
private static IEnumerable<Contact> _getContacts(int clientid)
        {
            using (var ctx = new atomicEntities())
            {
                var contacts = from c in ctx.Contacts
                               where c.ClientId == clientid
                               select c;
                return contacts.ToList();
            }
        }
private static Model.Contact.ContactDetail _marshallFirstContactDetail(int contact)
        {
            return _marshallContactDetails(contact).FirstOrDefault();
        }
private static IEnumerable<Model.Contact.ContactDetail> _marshallContactDetails(int contact)
        {
            using (var ctx = new atomicEntities())
            {
                var o = from d in ctx.ContactDetails
                        join cd in ctx.ContactDetailTypes on d.ContactDetailTypeId equals cd.ContactDetailTypeId
                        where d.ContactId == contact
                        select new Model.Contact.ContactDetail {Type = cd.Description, Value = d.Description};
                return o.ToList();
            } 
        }
contact_id  client_id   contact_name    contact_type
8   22  Cain Allan  2
9   23  Bazrith Banners 2
10  22  Spencer Grep    1
12  22  Bryan Chiney    1
13  22  Dave Carter 4
15  22  Steve Tite  8
16  22  Henry Laythorpe 8
17  22  Chris Barker    8
18  22  Simon Cox   2
19  22  Russell Jacobs  1
20  22  John Wyndham    2
21  22  Isabel March    5
22  22  Bryan Billbags  2
23  22  Stu Plum    2
24  22  Pete Sorensen   7
25  22  Tom Francis 1
26  22  Rich McCormick  1
27  22  Tim Cain    4
28  22  Alex Ray-Harvey 1
29  22  Ryan Bennett    1
30  22  Alice Griswald  3
31  22  Archibald Smyth 3
32  22  Benjamin Franklin   5