C# 通过隐式转换将对象列表强制转换为另一个对象

C# 通过隐式转换将对象列表强制转换为另一个对象,c#,.net,ienumerable,implicit-conversion,C#,.net,Ienumerable,Implicit Conversion,我有两个对象myObject1和myObject2,在myObject1中我有以下方法: public static implicit operator myObject2(myObject1 param) { //Some Code } 如何将IEnumerable转换为IEnumerable?尝试对每个项目进行转换: IEnumerable<myObject1> original; // ... IEnumerable<myObject2> converted =

我有两个对象
myObject1
myObject2
,在myObject1中我有以下方法:

public static implicit operator myObject2(myObject1 param)
{ //Some Code }

如何将
IEnumerable
转换为
IEnumerable

尝试对每个项目进行转换:

IEnumerable<myObject1> original; 
// ...
IEnumerable<myObject2> converted = original.Cast<myObject2>();
IEnumerable原件;
// ...
IEnumerable converted=original.Cast();

试着对每件物品进行施法:

IEnumerable<myObject1> original; 
// ...
IEnumerable<myObject2> converted = original.Cast<myObject2>();
IEnumerable原件;
// ...
IEnumerable converted=original.Cast();

试着对每件物品进行施法:

IEnumerable<myObject1> original; 
// ...
IEnumerable<myObject2> converted = original.Cast<myObject2>();
IEnumerable原件;
// ...
IEnumerable converted=original.Cast();

试着对每件物品进行施法:

IEnumerable<myObject1> original; 
// ...
IEnumerable<myObject2> converted = original.Cast<myObject2>();
IEnumerable原件;
// ...
IEnumerable converted=original.Cast();


它们是否具有相同的属性?强制转换的实现已经完成,但是编写类似于
IEnumerable params2=params1
的东西不会编译,因为params1是
IEnumerable
是什么让您认为它会编译的?您声明了一个从
myObject1
myObject2
的转换运算符,而不是从
IEnumerable
IEnumerable
的转换运算符,它们是否具有相同的属性?强制转换的实现已经完成,但编写类似于
IEnumerable params2=params1
的代码不会编译,给定的参数1是
IEnumerable
是什么让您认为它会编译?您声明了一个从
myObject1
myObject2
的转换运算符,而不是从
IEnumerable
IEnumerable
的转换运算符,它们是否具有相同的属性?强制转换的实现已经完成,但编写类似于
IEnumerable params2=params1
的代码不会编译,给定的参数1是
IEnumerable
是什么让您认为它会编译?您声明了一个从
myObject1
myObject2
的转换运算符,而不是从
IEnumerable
IEnumerable
的转换运算符,它们是否具有相同的属性?强制转换的实现已经完成,但编写类似于
IEnumerable params2=params1
的代码不会编译,给定的参数1是
IEnumerable
是什么让您认为它会编译?您声明了一个从
myObject1
myObject2
的转换运算符,而不是从
IEnumerable
IEnumerable
的转换运算符。我试过了,编译器试图转换整个IEnumerable,而不是其中的对象,因此它不编译。它编译并为我工作。将创建一个新的
IEnumerable
;你不能分配给同一个集合,因为它是不同的类型。哦,是的。。。没错,我把指定的类型声明为List,当然不能接受给定的IEnumerable。它可以工作,谢谢。我试过了,编译器试图转换整个IEnumerable,而不是其中的对象,所以它不能编译。它编译并为我工作。将创建一个新的
IEnumerable
;你不能分配给同一个集合,因为它是不同的类型。哦,是的。。。没错,我把指定的类型声明为List,当然不能接受给定的IEnumerable。它可以工作,谢谢。我试过了,编译器试图转换整个IEnumerable,而不是其中的对象,所以它不能编译。它编译并为我工作。将创建一个新的
IEnumerable
;你不能分配给同一个集合,因为它是不同的类型。哦,是的。。。没错,我把指定的类型声明为List,当然不能接受给定的IEnumerable。它可以工作,谢谢。我试过了,编译器试图转换整个IEnumerable,而不是其中的对象,所以它不能编译。它编译并为我工作。将创建一个新的
IEnumerable
;你不能分配给同一个集合,因为它是不同的类型。哦,是的。。。没错,我把指定的类型声明为List,当然不能接受给定的IEnumerable。这是有效的,谢谢。这是有效的,尽管我不确定它与
Cast()
方法相比会对性能产生怎样的影响。这是有效的,尽管我不确定它与
Cast()方法相比会对性能产生怎样的影响。这是有效的,尽管我不确定它与
Cast()相比会对性能产生怎样的影响
method。尽管我不确定它与
Cast()方法相比会对性能产生怎样的影响,但这种方法仍然有效。