chr
2026-04-05 fe750b791d5b517cc4e9bc8e99a9a75139a0cfba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections.ObjectModel;
using System.Linq;
 
namespace OpenTap
{
    /// <summary>
    /// Read-only collection of parameters where parameters can be looked up by name.
    /// </summary>
    class ParameterCollection : ReadOnlyCollection<IParameter>, IParameters
    {
        IParameter GetParameterByObjectType(string name) => this.FirstOrDefault(x => x.ObjectType == name);
        IParameter GetParameter(string name) => this.FirstOrDefault(x => x.Name == name);
 
        /// <summary> Gets a parameter by name.</summary>
        /// <param name="name"></param>
        public IConvertible this[string name] => (GetParameterByObjectType(name) ?? GetParameter(name))?.Value; 
 
        /// <summary> Creates a new parameter collection from an existing list of parameters. </summary>
        public ParameterCollection(IParameter[] list) : base(list)
        {
            
        }
 
        internal static readonly ParameterCollection Empty = new ParameterCollection(Array.Empty<IParameter>());
    }
}