Commit b053b921 authored by Jon Skeet's avatar Jon Skeet

Implement RepeatedField.AddRange.

This fixes issue #1730.
parent d9334ea8
...@@ -74,6 +74,16 @@ namespace Google.Protobuf.Collections ...@@ -74,6 +74,16 @@ namespace Google.Protobuf.Collections
Assert.AreEqual("bar", list[1]); Assert.AreEqual("bar", list[1]);
} }
[Test]
public void AddRange()
{
var list = new RepeatedField<string>();
list.AddRange(new[] { "foo", "bar" });
Assert.AreEqual(2, list.Count);
Assert.AreEqual("foo", list[0]);
Assert.AreEqual("bar", list[1]);
}
[Test] [Test]
public void Add_RepeatedField() public void Add_RepeatedField()
{ {
......
...@@ -307,7 +307,7 @@ namespace Google.Protobuf.Collections ...@@ -307,7 +307,7 @@ namespace Google.Protobuf.Collections
/// Adds all of the specified values into this collection. /// Adds all of the specified values into this collection.
/// </summary> /// </summary>
/// <param name="values">The values to add to this collection.</param> /// <param name="values">The values to add to this collection.</param>
public void Add(IEnumerable<T> values) public void AddRange(IEnumerable<T> values)
{ {
ProtoPreconditions.CheckNotNull(values, nameof(values)); ProtoPreconditions.CheckNotNull(values, nameof(values));
// TODO: Check for ICollection and get the Count, to optimize? // TODO: Check for ICollection and get the Count, to optimize?
...@@ -317,6 +317,18 @@ namespace Google.Protobuf.Collections ...@@ -317,6 +317,18 @@ namespace Google.Protobuf.Collections
} }
} }
/// <summary>
/// Adds all of the specified values into this collection. This method is present to
/// allow repeated fields to be constructed from queries within collection initializers.
/// Within non-collection-initializer code, consider using the equivalent <see cref="AddRange"/>
/// method instead for clarity.
/// </summary>
/// <param name="values">The values to add to this collection.</param>
public void Add(IEnumerable<T> values)
{
AddRange(values);
}
/// <summary> /// <summary>
/// Returns an enumerator that iterates through the collection. /// Returns an enumerator that iterates through the collection.
/// </summary> /// </summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment