0

LINQ&Entity Frameworkを使用して、多数の連絡先リストを使用してローロデックススタイルのグループを作成しようとしています。

プロパティを含むモデルにContactsラップする必要があるモデルがあります。手紙のレコードが存在する場合は、最初のプロパティを入力し、その中のリストにデータを入力する必要があります。-GroupedContactsInitialContacts

public char Initial { get; set; }
public List<Contacts> Contacts { get; set; }

誰かがこれを達成するために彼らの禅レベルのLINQを私に貸してくれますか?

完全を期すために、私の連絡先はget現在次のようになっています:-

using (var ctx = new atomicEntities())
            {
                var contacts = from c in ctx.Contacts
                               where c.ClientId == clientid
                               select c;
                return contacts.ToList();
            }

いつものように、助けていただければ幸いです:)

編集

質問を数回読み直しましたが、少し漠然としているように感じます。明確にするために、私は次のようなデータを作成しようとしています:-

{
        initial: 'c',
        contacts: [
            {
                name: 'Charlie Chaplin',
                primaryContact: {
                    type: 'phone',
                    value: '0123456789'
                }
            },
            {
                name: 'Charlie Sheen',
                primaryContact: {
                    type: 'email',
                    value: 'sheen@charliepower.com'
                }
            },
            {
                name: 'Colin Caterpiller',
                primaryContact: {
                    type: 'email',
                    value: 'colin@caterpiller.com'
                }
            }
        ]
    }
4

1 に答える 1

3

これが機能するかどうかを確認します。

contacts
.GroupBy(c=>string.IsNullOrEmpty(c.Name) ? '' : c.Name[0])
.Select(g=>new GroupedContacts {Initial = g.Key, Contacts = g.ToList()});

これにより、Nameプロパティの最初の文字(または、が空の場合Nameは空の文字列null)でグループ化され、グループ化キーがとして返され、Initialそのグループ内の連絡先のリストがとして返されContactsます。

于 2013-01-10T21:05:55.980 に答える