C# 使单个对象可枚举的最便宜方法?
我有一个接口函数,它返回一个C# 使单个对象可枚举的最便宜方法?,c#,casting,ienumerable,C#,Casting,Ienumerable,我有一个接口函数,它返回一个IEnumerable集合 我的一些类只使用了MyObject的一个硬编码实例,但仍然需要实现接口 目前我正在创建一个系统。数组如下: public class SomeClass : IMyInterface { private MyObject _myObject; public IEnumerable<MyObject> IMyInterface.GetMyObjects() { return new MyO
IEnumerable
集合
我的一些类只使用了MyObject
的一个硬编码实例,但仍然需要实现接口
目前我正在创建一个系统。数组如下:
public class SomeClass : IMyInterface
{
private MyObject _myObject;
public IEnumerable<MyObject> IMyInterface.GetMyObjects()
{
return new MyObject[] { _myObject };
}
}
public类SomeClass:IMyInterface
{
私有对象(MyObject);;
public IEnumerable IMyInterface.getMyObject()
{
返回新的MyObject[]{u MyObject};
}
}
我只是想知道是否有一种更有效的方法,或者有什么魔法来投射对象本身?你可以
public IEnumerable<MyObject> IMyInterface.GetMyObjects()
{
yield return _myObject;
}
public IEnumerable IMyInterface.getMyObject()
{
收益率(myObject);;
}
…但请考虑这将导致编译器生成一个完整的状态机类来工作。如果这听起来对你来说很便宜,好吧。否则,阵列解决方案看起来很好。如果在重用其实例时没有问题,您可能需要预先创建阵列。
我认为以下内容应该相当便宜:public IEnumerable<MyObject> IMyInterface.GetMyObjects()
{
return new MyObject[1] { _myObject };
}
public IEnumerable IMyInterface.getMyObject()
{
返回新的MyObject[1]{{u MyObject};
}
。非常感谢。这和OP目前的情况没有什么不同。