zoukankan      html  css  js  c++  java
  • wp7 webpair

    public class WebPair
    {
    public WebPair(string name, string value)
    {
    Name = name;
    Value = value;
    }

    public string Value { get; set; }
    public string Name { get; private set; }
    }
    public class WebParameter : WebPair
    {
    public WebParameter(string name, string value)
    : base(name, value)
    {

    }
    }

    public class WebPairCollection : IList<WebPair>
    {
    private IList<WebPair> _parameters;

    public virtual WebPair this[string name]
    {
    get
    {
    var parameters = this.Where(p => p.Name.Equals(name));

    if (parameters.Count() == 0)
    {
    return null;
    }

    if (parameters.Count() == 1)
    {
    return parameters.Single();
    }

    var value = string.Join(",", parameters.Select(p => p.Value).ToArray());
    return new WebPair(name, value);
    }
    }

    public virtual IEnumerable<string> Names
    {
    get { return _parameters.Select(p => p.Name); }
    }

    public virtual IEnumerable<string> Values
    {
    get { return _parameters.Select(p => p.Value); }
    }

    public WebPairCollection(IEnumerable<WebPair> parameters)
    {
    _parameters = new List<WebPair>(parameters);
    }

    public WebPairCollection(IDictionary<string, string> collection)
    : this()
    {
    AddCollection(collection);
    }

    public void AddCollection(IDictionary<string, string> collection)
    {
    foreach (var parameter in collection.Keys.Select(key => new WebPair(key, collection[key])))
    {
    _parameters.Add(parameter);
    }
    }

    public WebPairCollection()
    {
    _parameters = new List<WebPair>(0);
    }

    public WebPairCollection(int capacity)
    {
    _parameters = new List<WebPair>(capacity);
    }

    private void AddCollection(IEnumerable<WebPair> collection)
    {
    foreach (var pair in collection.Select(parameter => new WebPair(parameter.Name, parameter.Value)))
    {
    _parameters.Add(pair);
    }
    }

    public virtual void AddRange(WebPairCollection collection)
    {
    AddCollection(collection);
    }

    public virtual void AddRange(IEnumerable<WebPair> collection)
    {
    AddCollection(collection);
    }

    public virtual void Sort(Comparison<WebPair> comparison)
    {
    var sorted = new List<WebPair>(_parameters);
    sorted.Sort(comparison);
    _parameters = sorted;
    }

    public virtual bool RemoveAll(IEnumerable<WebPair> parameters)
    {
    var array = parameters.ToArray();
    var success = array.Aggregate(true, (current, parameter) => current & _parameters.Remove(parameter));
    return success && array.Length > 0;
    }

    public virtual void Add(string name, string value)
    {
    var pair = new WebPair(name, value);
    _parameters.Add(pair);
    }

    #region IList<WebParameter> Members

    public virtual IEnumerator<WebPair> GetEnumerator()
    {
    return _parameters.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
    return GetEnumerator();
    }

    public virtual void Add(WebPair parameter)
    {

    _parameters.Add(parameter);
    }

    public virtual void Clear()
    {
    _parameters.Clear();
    }

    public virtual bool Contains(WebPair parameter)
    {
    return _parameters.Contains(parameter);
    }

    public virtual void CopyTo(WebPair[] parameters, int arrayIndex)
    {
    _parameters.CopyTo(parameters, arrayIndex);
    }

    public virtual bool Remove(WebPair parameter)
    {
    return _parameters.Remove(parameter);
    }

    public virtual int Count
    {
    get { return _parameters.Count; }
    }

    public virtual bool IsReadOnly
    {
    get { return _parameters.IsReadOnly; }
    }

    public virtual int IndexOf(WebPair parameter)
    {
    return _parameters.IndexOf(parameter);
    }

    public virtual void Insert(int index, WebPair parameter)
    {
    _parameters.Insert(index, parameter);
    }

    public virtual void RemoveAt(int index)
    {
    _parameters.RemoveAt(index);
    }

    public virtual WebPair this[int index]
    {
    get { return _parameters[index]; }
    set { _parameters[index] = value; }
    }

    #endregion
    }

    public class WebParameterCollection : WebPairCollection
    {
    public WebParameterCollection(IEnumerable<WebPair> parameters)
    : base(parameters)
    {

    }

    public WebParameterCollection()
    {
    }

    public WebParameterCollection(int capacity)
    : base(capacity)
    {
    }

    public WebParameterCollection(IDictionary<string, string> collection)
    : base(collection)
    {

    }

    public override void Add(string name, string value)
    {
    var parameter = new WebParameter(name, value);
    base.Add(parameter);
    }
    }

    protected WebParameterCollection Parameters { get; set; }

    public void AddParameter(string name, string value)
    {
    //if (null == Parameters)
    //{
    // Parameters = new WebParameterCollection();
    //}
    //Parameters.Add(name, value);
    }

  • 相关阅读:
    POJ 1987
    POJ 3107
    POJ 1984
    POJ 1985
    【50】目标检测之目标定位
    【49】计算机视觉现状
    【48】数据扩充(Data augmentation)
    【47】迁移学习(Transfer Learning)
    【46】谷歌 Inception 网络简介Inception(2)
    【45】谷歌 Inception 网络简介Inception(1)
  • 原文地址:https://www.cnblogs.com/androllen/p/3026296.html
Copyright © 2011-2022 走看看