, .
, ,
,
class ValueObj
{
public int ID { get; set; }
public float value { get; set; };
}
,
class ValueComparer : IComparable<ValueObj>
{
public int Compare(ValueObj x, ValueObj y)
{
if (ReferenceEquals(x, y)) return 0;
if (x == null) return -1;
if (y == null) return 1;
return x.ID == y.ID ? 0 :
x.ID > y.ID ? 1 : -1;
}
}
,
var tempValues = new List<ValueObj>();
serach
var sortedList = tempValues.OrderBy(x => x.ID).ToList();
tempValues
//tempValues is modified in this method and order of items get changed
tempValues.Sort(new ValueComparer<ValueObj>());
ValueObj
var index = sortedList.BinarySearch(specificValueObj, new ValueComparer<ValueObj>());
var index = tempValues.BinarySearch(specificValueObj, new ValueComparer<ValueObj>());