我读了一个 SO,它要求最简单的方法来创建一个包含一个成员的列表。
这对我提出了一个问题,这什么时候有用?
List<T>
当我将 a与单个成员一起使用而不是T
变量本身时,我想不出一个例子。
有人可以解释或提供一个例子吗?
我读了一个 SO,它要求最简单的方法来创建一个包含一个成员的列表。
这对我提出了一个问题,这什么时候有用?
List<T>
当我将 a与单个成员一起使用而不是T
变量本身时,我想不出一个例子。
有人可以解释或提供一个例子吗?
您可能必须实现一个需要返回对象集合的接口。您有时可能希望返回单个对象,但您仍然必须实现接口,一种方法是创建一个包含单个对象的列表,然后返回该列表。
class ConstantValue : IValueProvider
{
public override IList<int> getValues()
{
return new List<int> { 1 };
}
}
通常,当您有一个恰好包含一个成员的元素的逻辑集合时,就会发生这种情况。例如,您可能有一个 House 类,其中包含一组 Room 项目,但 OneRoomSchoolhouse 类在其 Rooms 集合中只有一个对象。
另一个例子,你可能有一个带有这个签名的方法:
void LogNewItems(List<Item> newItems);
如果您只有一项,则必须这样传递它:
LogNewItems(new List<Item> { item });
事实上,如果您正在设计 item-logging API,您可能会创建一个方便的方法,这样开发人员就不必这样做了。该方法可能如下所示:
void LogNewItem(Item item)
{
LogNewItems(new List<Item> { item });
}
所以我不必拥有DoSomethingWithAListOfFoo(List<Foo> items)
ANDDoSomethingWithAFoo(Foo item)
实现。 DoSomethingWithAFoo
可以简单地创建单个项目列表并将其传递给DoSomethingWithAListOfFoo
.
因为已经没有IEnumerable<T> Except(T)
可用的重载。