C# 从C中的方法返回泛型列表#
从Linq扩展返回泛型集合时遇到困难。我使用单个参数调用该方法:C# 从C中的方法返回泛型列表#,c#,generics,collections,return,C#,Generics,Collections,Return,从Linq扩展返回泛型集合时遇到困难。我使用单个参数调用该方法: static List<NewPeople> GetPeople() { List<People> ppl = Enttity.GetCollection(); var abc = new List<NewPeople>(); ppl.CopyAllTo(abc);
static List<NewPeople> GetPeople()
{
List<People> ppl = Enttity.GetCollection();
var abc = new List<NewPeople>();
ppl.CopyAllTo(abc);
return abc;
//return nppl;
}
Called Method:
public static IList<U> CopyAllTo<T, U>(this IEnumerable<T> source, List<U> destination)
where T : class
where U : class
{
List<U> objectList = new List<U>();
foreach (T t in source)
{
U u = Activator.CreateInstance<U>();
t.CopyTo(u);
objectList.Add(u);
}
return objectList;
}
静态列表GetPeople()
{
List ppl=Enttity.GetCollection();
var abc=新列表();
ppl.CopyAllTo(abc);
返回abc;
//返回nppl;
}
调用的方法:
公共静态IList CopyAllTo(此IEnumerable源,列表目标)
T:在哪里上课
你在哪里上课
{
List objectList=新列表();
foreach(源中的T)
{
U=Activator.CreateInstance();
t、 CopyTo(u);
objectList.Add(u);
}
返回对象列表;
}
我无法让列表返回。当我在“ReturnObjectList”上中断代码时,列表中有3个对象,但是,在返回给调用者时,返回一个空值
有人知道这张图片有什么问题吗?或者您必须在GetPeople方法中将该值赋给abc(删除CopyAllTo方法中的destination参数):
静态列表GetPeople()
{
List ppl=Enttity.GetCollection();
List abc=ppl.CopyAllTo();
返回abc;
//返回nppl;
}
或者在CopyAllTo方法中使用目标变量(这是可能的,因为List
是引用类型):
public static void CopyAllTo(此IEnumerable源,列表目标)
T:在哪里上课
你在哪里上课
{
foreach(源中的T)
{
U=Activator.CreateInstance();
t、 CopyTo(u);
目的地。添加(u);
}
}
或者,您必须在GetPeople方法中将值分配给abc(删除CopyAllTo方法中的destination参数):
静态列表GetPeople()
{
List ppl=Enttity.GetCollection();
List abc=ppl.CopyAllTo();
返回abc;
//返回nppl;
}
或者在CopyAllTo方法中使用目标变量(这是可能的,因为List
是引用类型):
public static void CopyAllTo(此IEnumerable源,列表目标)
T:在哪里上课
你在哪里上课
{
foreach(源中的T)
{
U=Activator.CreateInstance();
t、 CopyTo(u);
目的地。添加(u);
}
}
提示:您没有使用destination
,也没有保存CopyAllTo
中的返回值。我在return语句前面添加了一行:destination=objectList,后面是return of destination。我不确定你说的“储蓄”是不是指这样的东西。我的意思是objectList中确实有我要查找的项目,但作为回报,那里什么也没有。请查看某人的答案。提示:您没有使用destination
,也没有保存CopyAllTo
中的返回值。我在return语句之前添加了一行:destination=objectList,然后是return of destination。我不确定你说的“储蓄”是不是指这样的东西。我的意思是objectList确实有我要找的项目,但作为回报,那里什么都没有。看看别人的答案。