我使用C#语言,我有一个小问题List<Tuple<int,int>>.假设我创建了一个List<Tuple<int,int>>然后插入一些条目,如:(12,3),(154,43),(85,342)
现在我想List通过第一项搜索JUST,即只是item1通过二进制搜索来实现这一点.
这样的事情:
List<Tuple<int,int>> tt = new List<Tuple<int,int>>();
tt.Add(new Tuple<int,int>(12,32));
tt.sort();
tt.binarysearch(item1:12);
Run Code Online (Sandbox Code Playgroud)
和一些像这样的输出:
12 32
现在有什么解决方案吗?
是的,BinarySearch需要IComparer,您可以创建自己的继承自定义比较器 IComparer<Tuple<int, int>>
因此:
public class BinarySearchComparer : IComparer<Tuple<int, int>>
{
public int Compare(Tuple<int, int> f1, Tuple<int, int> f2)
{
return Comparer<int>.Default.Compare(f1.Item1, f2.Item1);
}
}
Run Code Online (Sandbox Code Playgroud)
和例子:
tt.Binarysearch(12, new BinarySearchComparer());
Run Code Online (Sandbox Code Playgroud)
有关信息,请访问:http://msdn.microsoft.com/en-us/library/ftfdbfx6(v = vs.110).aspx
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |