如何将一个对象转换为该对象的IEnumerable
本文关键字:对象 IEnumerable 转换 一个对象 | 更新日期: 2023-09-27 18:27:19
我有一个函数返回一个Person类型的对象。
现在,我需要调用另一个接受IEnumerable<Person>
类型的函数。请问怎么做?
下面的这个函数返回Person。
var objA = Service.GetAll(obj);
我需要调用另一个方法,如下
var result = Service.Get(AR<IEnumerable<Person>> name, type)
我将名称指定为IEnumerable<Person>
,因为它采用该类型。
编辑
我的第二个方法将其作为参数类型。
AR<IEnumerable<Person>>
在所有其他地方,我的第一个方法返回AR<Ienumerable<person>>
,但在一种情况下它返回AR<Person>
。现在我需要将其作为一个列表,即AR<IEnumerable<Person>>
,这样我就可以使用第二种方法,如
在这些罕见的情况下,我使用这样的扩展方法:
public static IEnumerable<T> YieldMe<T>(this T obj)
{
yield return obj;
}
一个简单的方法是从开始
public Person GetPerson()
{
return new Person()
}
并添加:
public IEnumerable<Person> GetPeople()
{
return new [] { GetPerson() };
}
我正在寻找类似
IEnumerable<Person>
应该通过的东西作为第二个函数的参数,而我得到Person作为返回值在第一个函数中
所以你可以使用这样的代码:
/*while I get Person as return value in first function*/
Person p = FirstMethod();
/*IEnumerable<Person> should be passed as a parameter to second function*/
SecondMethod(new Person[] { p });
而第二个方法签名可以是void SecondMethod(IEnumerable<Person> x)
您可以创建List<Person>
的新实例,因为List<T>
实现了IEnumerable
。https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx
因此:
var person = FunctionThatGetsPerson();
List<Person> personList = new List<Person> { person };
FunctionThatTakesEnumerable(personList);
public void FunctionThatTakesEnumerable(IEnumerable<Person> personList)
{
//
}
只需使用
Enumerable.Repeat(objA, 1);
重复返回您所需要的内容。