Несколько antrun задач в знатоке

Некоторые расширения для работы со списками:

/// <summary>
/// Wrap an object in a list
/// </summary>
public static IList<T> WrapInList<T>(this T item)
{
    List<T> result = new List<T>();
    result.Add(item);
    return result;
}

использование, например:

myList = someObject.InList();

Для создания IEnumerable, который содержит объекты из одного или нескольких источников, чтобы заставить IEnumerable работать больше как списки. Это не может быть хорошей идеей для высокоэффективного кода, но полезный для того, чтобы сделать тесты:

public static IEnumerable<T> Append<T>(this IEnumerable<T> enumerable, T newItem)
{
    foreach (T item in enumerable)
    {
        yield return item;
    }

    yield return newItem;
}

public static IEnumerable<T> Append<T>(this IEnumerable<T> enumerable, params T[] newItems)
{
    foreach (T item in enumerable)
    {
        yield return item;
    }

    foreach (T newItem in newItems)
    {
        yield return newItem;
    }
}

использование, например,

someEnumeration = someEnumeration.Append(newItem);

Другие изменения этого возможны - например,

someEnumeration = someEnumeration.Append(otherEnumeration);

при клонировании объектов можно также хотеть к спискам клонов их:

public static IList<T> Clone<T>(this IEnumerable<T> source) where T: ICloneable
{
    List<T> result = new List<T>();

    foreach (T item in source)
    {
        result.Add((T)item.Clone());
    }

    return result;
}

, Когда я работаю с ObservableCollection<T>, я обычно расширяю его с помощью метода AddRange. Другие ответы здесь дают реализации этого.

можно поместить этот код в проект Codeplex, если Вы хотите .

20
задан Rich Seller 30 July 2009 в 19:47
поделиться

1 ответ

Я использовал это в разделе сборки / надстройки

<plugin>

    <artifactId>maven-antrun-plugin</artifactId>
    <executions>

        <execution>
            <id>clean</id>
            <phase>clean</phase>
            <configuration>
                <tasks>
                    <echo message = ">>>>>>>>>>>>>>>>>>>>>>>>>>clean"/>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>

        <execution>
            <id>compile</id>
            <phase>compile</phase>
            <configuration>
                <tasks>
                    <echo message = ">>>>>>>>>>>>>>>>>>>>>>>>>>>>compile"/>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>

        <execution>
            <id>package</id>
            <phase>package</phase>
            <configuration>
                <tasks>
                    <echo message = ">>>>>>>>>>>>>>>>>>>>>>>>>>>>package"/>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>

    </executions>

</plugin>
26
ответ дан 30 November 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: