问题描述
美好的一天!
我有一个 ValueObj 列表:
类 ValueObj{整数标识;浮点值;}
如何通过id获取二分查找对象?(列出 tempValues)
我做了 ValueComparer 类,但不知道我说的对吗?
类 ValueComparer;{公共 int 比较(ValueObjx,ValueObjy){如果 (x == y) 返回 0;如果(x == null)返回-1;如果(y == null)返回1;返回-1;///???}}
我需要按 ID 对列表进行排序.像这样?:
tempValues.Sort(new ValueComparer());
以及如何使用 BinarySearch?
C#中的List类有一个BinarySearch 方法可以与 Comparable 一起使用.
您的类型:
类 ValueObj{公共 int ID{ 获取;放;}公共浮动值 { 获取;放;}}
你的比较类(别忘了实现正确的接口!):
类 ValueObjIDComparer : IComparable;{公共 int 比较(ValueObj x,ValueObj y){如果(x == null)返回-1;如果(y == null)返回1;如果(x.ID == y.ID)返回 0;返回 x.ID >y.ID ?1:-1;}}
执行二分查找:
列表myList = 新列表<ValueObj>();myList.Add(new ValueObj(){ID=1});myList.Add(new ValueObj(){ID=2});//...int idToFind = 2;myList.Sort(new ValueObjIDComparer());int indexOfItem = myList.BinarySearch(idToFind, new ValueObjIDComparer());
您可以对列表执行更多操作.请参阅此处的文档..p>
Good day!
I have a List of ValueObj:
class ValueObj
{
int ID;
float value;
}
How to get binary search objects by id? (List tempValues)
I make ValueComparer class,but dont know am i right?
class ValueComparer<ValueObj>
{
public int Compare(ValueObjx, ValueObjy)
{
if (x == y) return 0;
if (x == null) return -1;
if (y == null) return 1;
return -1; ///???
}
}
I need to sort List by ID. Like that?:
tempValues.Sort(new ValueComparer());
And how to use BinarySearch?
The List class in C# has a BinarySearch method you can use with your Comparable.
Your type:
class ValueObj
{
public int ID{ get; set;}
public float value { get; set;}
}
Your comparison class (do not forget to implement the correct interface!):
class ValueObjIDComparer : IComparable<ValueObj>
{
public int Compare(ValueObj x, ValueObj y)
{
if (x == null) return -1;
if (y == null) return 1;
if (x.ID == y.ID) return 0;
return x.ID > y.ID ? 1 : -1;
}
}
Executing a binary search:
List<ValueObj> myList = new List<ValueObj>();
myList.Add(new ValueObj(){ID=1});
myList.Add(new ValueObj(){ID=2});
// ...
int idToFind = 2;
myList.Sort(new ValueObjIDComparer());
int indexOfItem = myList.BinarySearch(idToFind, new ValueObjIDComparer());
There are many more operations you can perform on lists. See the documentation here.
这篇关于按 ID 的 BinarySearch 对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!