您的位置:程序门 -> .net技术 -> c#



动态数组的二分查找的问题请大家帮忙


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


动态数组的二分查找的问题请大家帮忙
发表于:2007-09-11 12:53:23 楼主
为什么动态数组的二分查找在查找对象是出现错误   提示为icompar异常〉代码如下

class   c1
{
public   string   id;
public   string   mc;
}
c1   c1=new   c1()
arraylist   al=new   ();
dt//为有数据的datatable
for(int     i=0;i <dt.rows.countli++)
{  
c1.id=dt[i][ "id "].tostring()
c1.mc=dt[i][ "mc "].tostring()
al.add(c1)
}
//查找
  c1   c2=new   c1();
c2.id= "1 ";
c2.mc= "2 ";
int   k=al.(al.binarysearch(c2)   //为什么到这个地方出现运行异常呢?提示icompar异常?请大家帮忙
发表于:2007-09-30 12:36:501楼 得分:0
al.(al.binarysearch(c2)     ????
这个代码是。。。。。。编译通过的?
发表于:2007-10-02 20:48:542楼 得分:0
arraylist.binarysearch   方法   (object)     [c#]请参见
arraylist   类   ¦   arraylist   成员   ¦   system.collections   命名空间   ¦   arraylist.binarysearch   重载列表   ¦   在集合中执行不区分区域性的字符串操作   ¦   arraylist   成员(visual   j#   语法)   ¦   c++   托管扩展编程  
要求
平台:   windows   98,   windows   nt   4.0,   windows   me,   windows   2000,   windows   xp   home   edition,   windows   xp   professional,   windows   server   2003   系列,   公共语言基础结构   (cli)   标准
语言
c#

c++

jscript

visual   basic

全部显示
使用默认的比较器在整个已排序的   arraylist   中搜索元素,并返回该元素从零开始的索引。

[visual   basic]
overloads   public   overridable   function   binarysearch(   _
      byval   value   as   object   _
)   as   integer

[c#]
public   virtual   int   binarysearch(
      object   value
);

[c++]
public:   virtual   int   binarysearch(
      object*   value
);

[jscript]
public   function   binarysearch(
      value   :   object
)   :   int;

参数
value  
要定位的   object。该值可以为空引用(visual   basic   中为   nothing)。  
返回值
如果找到   value,则为已排序的   arraylist   中从零开始的   value   索引;否则为一个负数,它是大于   value   的下一个元素索引的按位求补,如果没有更大的元素,则为   count   的按位求补。

异常
异常类型   条件  
argumentexception   无论是   value   还是   arraylist   的元素都不实现   icomparable   接口。  
invalidoperationexception   value   与   arraylist   的元素类型不同。  

备注
value   参数和   arraylist   的每个元素必须实现   icomparable   接口,该接口用于比较。如果   arraylist   尚未按照   icomparable   实现进行排序,则结果可能会不正确。

发表于:2007-10-02 20:50:043楼 得分:0
代码问题多多
c1       c1=new       c1()  
arraylist       al=new       ();  
dt//为有数据的datatable  
for(int           i=0;i   <dt.rows.countli++)  
{      
c1.id=dt[i]["id"].tostring()  
c1.mc=dt[i]["mc"].tostring()  
al.add(c1)       //   arraylist   所有元素指向同一个引用,


快速检索

最新资讯
热门点击