【发布时间】:2013-01-30 21:16:38
【问题描述】:
我有一个像下面这样的模型
public sealed class Person
{
public string MobileNo { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
在我的实现类中,我有一个将IEnumerable 作为参数的方法
public string PersonList(string listName, IEnumerable<Person> persons)
{
dictionary.Add("name", new String[1] { listname });
dictionary.Add("list", persons.ToArray());
PrivateMethod("personList", dictionary);
}
我有另一个私有方法
private string PrivateMethod(string value, Dictionary<string, object[]> parameters)
{
foreach (KeyValuePair<string, object[]> kvp in parameters)
{
Person[] persons = kvp.Value.Cast<Person>().ToArray();
[...]
}
[...]
}
我想让上面的方法可重用,不想把 "Person" 模型紧密耦合。
我可以使用动态吗?
ContactList(string listName, IEnumerable<dynamic> persons)
并且在私有方法内
dynamic[] persons = kvp.Value.Cast<如何在这里传递模型>().ToArray();
解决方案:
这会奏效的,太好了。
dynamic[] persons = kvp.Value.Cast<dynamic>().ToArray();
感谢 usr 和 Rune FS
【问题讨论】:
-
你想用
persons做什么?.Cast<dynamic>()呢? -
@usr:
.Cast<dynamic>()会起作用吗? -
@ShubhajyotiGhosh 试试 :)
标签: c# .net generics generic-programming