当前位置:编程学习 > C#/ASP.NET >>

索引超出范围。必须为非负值并小于集合大小。

索引超出范围。必须为非负值并小于集合大小。
参数名: index 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index

源错误: 
行 41:             operate op = listop[0];
 
源程序如下:
public partial class qs_rizhi_peiyueadd : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            string id = this.Request.QueryString["w_id"];
            int wid = Int32.Parse(id);
           worklog wl = worklogBLL.Select(wid);
            
            int uid = wl.w_u_id;


            users us = usersBLL.Select(uid);
            
             
            this.txtUname.Text = us.u_username;
            this.txtBiaoTi.Text = wl.w_title;
            this.txtNeiRong.Text = wl.w_content;

            //取当前登陆人名进入页面就附上批阅人
            users loginuser = Session["loginuser"] as users;
            int uidd = loginuser.u_id;
            string where5 = "op_u_id='{0}'";
            where5 = string.Format(where5, uidd);
            IList<operate> listop = operateBLL.Select(where5);
            operate op = listop[0];
            int quanxian = op.op_pop_id;
            
            if (loginuser == null)
            {
                this.Response.Write(string.Format(GetRedirect.ALLREDIRECT, "../login.aspx"));
                return;
            }
            else if (quanxian < 1)
            {
                this.Response.Write(string.Format(GetRedirect.WINALERT, "您没有批阅条件"));
                this.Response.Write(string.Format(GetRedirect.REDIRECT, "rizhipiyue.aspx"));
            }else
            {
                string LoginName = loginuser.u_username;


                this.txtPeiId.Text = LoginName;
            }
        } 

baidu zhidao 上有个朋友告诉我:
源错误: 
行 41:             operate op = listop[0];
这表示listop里面没有数据,是一个空集合,你可以在取listop集合时先判断一下里面是否有数据,下面是代码
  int quanxian = 0;
  if(listop.count>0)
{  operate op = listop[0];
  quanxian = op.op_pop_id;


我照着把代码粘进去了,可是又出错了。
编译器错误消息: CS0117: “System.Collections.Generic.IList<COM.OA.Entity.operate>”并不包含“count”的定义
请问应该改成什么?或者有没有别的方法怎么改一下?谢谢! --------------------编程问答-------------------- LZ先写下Listop然后打.看看后面有没有Count这个属性.... --------------------编程问答-------------------- 应该是listop.count不存在吧 --------------------编程问答-------------------- List<T> lst=new List<T>();
if(lst.Count>0)
{}
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,