如何传递匿名对象列表?

时间:2013-11-15 20:16:59

标签: c# anonymous-types

我在商店流程中推出了大部分方法功能。我正在返回2个表的连接结果,因此没有类型来收集返回数据。我正在考虑使用匿名类型。

public static List<Anonymous Type> 
              SaveUsersToGroup(int groupId, List<int> userIds)
{


   //more here ...

   var list = new List<Anonymous Type>();
   foreach (DataRow row in dt.Rows)
   {

      list.Add(new { Id = row["Id"].ToString(), 
                     FirstName = row["FirstName"].ToString(),
                     LastName = row["LastName"].ToString()
              });
   }
}

现在如何创建匿名对象列表。而且(最重要的是)这种方法的返回类型是什么?

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

关于匿名类型的全部观点是它们是匿名的。你试图给它们命名,这不再使它们成为匿名。

使用dynamic(不是我最喜欢的解决方案)或创建一个包含IdFirstNamelastName的类。

答案 1 :(得分:1)

你做不到:

  

您不能将字段,属性,事件或方法的返回类型声明为具有匿名类型

     

Anonymous Types (C# Programming Guide)

你可以将mathod声明为IEnumerable<object>,但你会看到这种类型的安全性,你将*使用dynamic来阅读结果。

您应该创建简单的POCO类并返回该类项的集合而不是匿名类型。

答案 2 :(得分:1)

您可以使用dynamic,因为您的投影是匿名的