17 Mart 2011, PERŞEMBE
Orada bir C# tamsayı bir Dizi temsil eden bir tip mi?
Tamsayı bir dizi depolamak için bir ihtiyaç var. C# 4.0 için varolan bir türü var mı?
Elbette, int ile kendi sınıf yazma ve özellikleri İçin int ve < sağlamak için doğru mantık inşa edebilirim;=. Ama eğer bir tür varsa, tabii ki yerine kullanmak istiyorum.
CEVAP
17 Mart 2011, PERŞEMBE
En iyisi benim kendi rulo buldum. Bazı insanlar Tuples
Point
s kullanın, ama sonunda aralığınızı geniş bir Yelpazede ilgili bazı kullanışlı yöntemler sağlar. Aynı zamanda en iyi genel (eğer Çiftler bir dizi gerekiyorsa, ya da bazı özel sınıf bir dizi?) Örneğin:
public class Range<T> where T : IComparable<T>
{
/// <summary>
/// Minimum value of the range
/// </summary>
public T Minimum { get; set; }
/// <summary>
/// Maximum value of the range
/// </summary>
public T Maximum { get; set; }
/// <summary>
/// Presents the Range in readable format
/// </summary>
/// <returns>String representation of the Range</returns>
public override string ToString() { return String.Format("[{0} - {1}]", Minimum, Maximum); }
/// <summary>
/// Determines if the range is valid
/// </summary>
/// <returns>True if range is valid, else false</returns>
public Boolean IsValid() { return Minimum.CompareTo(Maximum) <= 0; }
/// <summary>
/// Determines if the provided value is inside the range
/// </summary>
/// <param name="value">The value to test</param>
/// <returns>True if the value is inside Range, else false</returns>
public Boolean ContainsValue(T value)
{
return (Minimum.CompareTo(value) <= 0) && (value.CompareTo(Maximum) <= 0);
}
/// <summary>
/// Determines if this Range is inside the bounds of another range
/// </summary>
/// <param name="Range">The parent range to test on</param>
/// <returns>True if range is inclusive, else false</returns>
public Boolean IsInsideRange(Range<T> Range)
{
return this.IsValid() && Range.IsValid() && Range.ContainsValue(this.Minimum) && Range.ContainsValue(this.Maximum);
}
/// <summary>
/// Determines if another range is inside the bounds of this range
/// </summary>
/// <param name="Range">The child range to test</param>
/// <returns>True if range is inside, else false</returns>
public Boolean ContainsRange(Range<T> Range)
{
return this.IsValid() && Range.IsValid() && this.ContainsValue(Range.Minimum) && this.ContainsValue(Range.Maximum);
}
}
Bunu Paylaş:
Neden C yüzen bir bütün tamsayı değerl...
Nasıl JSON dizeleri bir dizi temsil ed...
Golang içinde çeteleler temsil eden de...
Orada Göster<dizi için iyi bir yold...
Bu nasıl bir dizi kontrol etmek için y...