65 lines
3.9 KiB
C#
65 lines
3.9 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace MadMilkman.Ini
|
|
{
|
|
/// <summary>
|
|
/// Represents a collection of <see cref="IniSection"/> items.
|
|
/// </summary>
|
|
/// <seealso cref="IniSection"/>
|
|
public sealed class IniSectionCollection : IniItemCollection<IniSection>
|
|
{
|
|
internal IniSectionCollection(IniFile parentFile, IniDuplication duplication, bool caseSensitive)
|
|
: base(parentFile, null, duplication, caseSensitive) { }
|
|
|
|
/// <summary>
|
|
/// Adds an item to the end of this collection.
|
|
/// </summary>
|
|
/// <param name="name">Name of the <see cref="IniSection"/> to add to this collection.</param>
|
|
/// <returns><see cref="IniSection"/> that was added to this collection.</returns>
|
|
/// <include file='IniInternal\SharedDocumentationComments.xml' path='Comments/Comment[@name="AddIgnored"]/*'/>
|
|
public IniSection Add(string name) { return this.Add(name, null); }
|
|
|
|
/// <summary>
|
|
/// Adds an item to the end of this collection.
|
|
/// </summary>
|
|
/// <param name="name">Name of the <see cref="IniSection"/> to add to this collection.</param>
|
|
/// <param name="nameValuePairs">The section's keys data, pairs of key's name and key's value, to add to this collection.</param>
|
|
/// <returns><see cref="IniSection"/> that was added to this collection.</returns>
|
|
/// <include file='IniInternal\SharedDocumentationComments.xml' path='Comments/Comment[@name="AddIgnored"]/*'/>
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures",
|
|
Justification = "I don't want to use IDictionary<string, string>, there is no need for such a contract because IEnumerable<KeyValuePair<string, string>> is enough.")]
|
|
public IniSection Add(string name, IEnumerable<KeyValuePair<string, string>> nameValuePairs)
|
|
{
|
|
var section = new IniSection(this.ParentFile, name, nameValuePairs);
|
|
this.Add(section);
|
|
return section;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Inserts an item to this collection at the specified index.
|
|
/// </summary>
|
|
/// <param name="index">Zero-based index at which item should be inserted.</param>
|
|
/// <param name="name">Name of the <see cref="IniSection"/> to insert to this collection.</param>
|
|
/// <returns><see cref="IniSection"/> that was inserted to this collection.</returns>
|
|
/// <include file='IniInternal\SharedDocumentationComments.xml' path='Comments/Comment[@name="InsertIgnored"]/*'/>
|
|
public IniSection Insert(int index, string name) { return this.Insert(index, name, null); }
|
|
|
|
/// <summary>
|
|
/// Inserts an item to this collection at the specified index.
|
|
/// </summary>
|
|
/// <param name="index">Zero-based index at which item should be inserted.</param>
|
|
/// <param name="name">Name of the <see cref="IniSection"/> to insert to this collection.</param>
|
|
/// <param name="nameValuePairs">The section's keys data, pairs of key's name and key's value, to insert to this collection.</param>
|
|
/// <returns><see cref="IniSection"/> that was inserted to this collection.</returns>
|
|
/// <include file='IniInternal\SharedDocumentationComments.xml' path='Comments/Comment[@name="InsertIgnored"]/*'/>
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures",
|
|
Justification = "I don't want to use IDictionary<string, string>, there is no need for such a contract because IEnumerable<KeyValuePair<string, string>> is enough.")]
|
|
public IniSection Insert(int index, string name, IEnumerable<KeyValuePair<string, string>> nameValuePairs)
|
|
{
|
|
var section = new IniSection(this.ParentFile, name, nameValuePairs);
|
|
this.Insert(index, section);
|
|
return section;
|
|
}
|
|
}
|
|
}
|