只有一个成员的列表怎么会有用呢?

本文关键字:有用 怎么会 列表 有一个 成员 | 更新日期: 2023-09-27 17:49:27

我读了一篇SO,它要求最简单的方法创建一个只有一个成员的列表。

将对象转换为单元素列表的快速方法?

这给我提出了一个问题,这在什么时候有用?

我想不出一个例子,当我在T变量本身上使用具有单个成员的List<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 });

事实上,如果你正在设计项目日志API,你可能会创建一个方便的方法,这样开发人员就不必这样做了。这个方法看起来像这样:

void LogNewItem(Item item)
{
    LogNewItems(new List<Item> { item });
}

所以我不必有DoSomethingWithAListOfFoo(List<Foo> items)DoSomethingWithAFoo(Foo item)的实现。DoSomethingWithAFoo可以简单地创建一个项目列表,并将其传递给DoSomethingWithAListOfFoo

因为没有重载IEnumerable<T> Except(T)可用