Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C中的方法返回泛型列表#_C#_Generics_Collections_Return - Fatal编程技术网

C# 从C中的方法返回泛型列表#

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);

从Linq扩展返回泛型集合时遇到困难。我使用单个参数调用该方法:


   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确实有我要找的项目,但作为回报,那里什么都没有。看看别人的答案。