2

このような匿名リストを宣言しました。連絡先のリストも含まれています

var ContactGroup = new[] { new { ContactGroupKey = 0, ContactGroupTLK = 0, Desc = "",  Contacts=new List<object>() } }.ToList();

ContactGroupKey が存在する場合はリストを確認してから、連絡先 (リストとして定義されている) のみを更新し、それ以外の場合は新しい連絡先グループを挿入します。しかし、匿名リスト内に新しい連絡先グループを追加しようとすると、「'System.Collections.Generic.List.Add(AnonymousType#2)' に一致する最適なオーバーロードされたメソッドには無効な引数があります」というエラーがスローされます。初めてリストします。このシナリオではクラスを避けようとしました。どこで間違いを犯したか教えてもらえますか?

 while()
 {
    var Contact= new {
                       ContactKey = Convert.ToInt64(DB["ContactKey", "0"]),                       
                       FirstName = DB["FirstName", ""].ToString(),
                       Surname = DB["Surname", ""].ToString(),
                       FullName = DB["Fullname", ""].ToString(),
                       Street = DB["bStreet", ""].ToString(),
                       City = DB["bCity", ""].ToString(),
                     };
     foreach (var item in ContactGroup)
                {
                    if (item.ContactGroupKey == Contact.ClaimContactGroupKey)
                    {
                        item.Contacts.Add(Contact);
                        added = true;
                    }
                }
     if(!added){

      ContactGroup.Add(new {
                           ContactGroupKey = Convert.ToInt64(DB["ContactGroupKey", "0"]),
                           ContactGroupTLK = Convert.ToInt64(DB["TranslationKey", "0"]),
                           Desc = DB["Description", ""].ToString(),
                           Contacts=GenerateList(Contact)
                           });          
       }
 }// End While


public static List<T> GenerateList<T>(T itemOftype)
 {
     List<T> newList = new List<T>();
     return newList;
 } 
4

2 に答える 2

0

匿名型は、現在のメソッドを離れることを意図していません。それらを他のメソッドに渡すことはできません。処理する必要があるプロパティを含むクラスを定義する必要があります。

于 2013-01-28T14:25:54.693 に答える