int[] ss = new int[8];
我试了试,没有被赋值的话数组里所有的8个数都是0,
if(ss[0]==0&&ss[1]==0.......&&ss[7]==0)
{
   就是没赋值过
}
有没有其他好些的方法

解决方案 »

  1.   

            if (ss.Count(s => s != 0) > 0)
            {
            }
      

  2.   

    null   
    Length==0 
      

  3.   


                int[] ss = new int[8];
                if (ss.Length==0)
                    Console.WriteLine(ss.Length);
    我试了  这样是没用的
      

  4.   

    方法有很多,要看具体应用了,我能想到的有这些:
    1、把数组的值初始化成不太可能会碰到的组合,例如全是0,或全是-1,或者全是int.MinValue,或者一部分是int.MinValue一部分是int.MaxValue。
    2、使用可空的值类型数组,int?[]。如果数组的每一个元素值的HasValue属性都为false,可以认为数组没有被赋值。不过这种方法在使用起来会比较不方便。
    3、用一个类型来封装这个数组,除了提供原来数组的基本功能以外,再设置一个是否已经赋值的标志。相比之下,这个方法应该是最靠谱的,只是实现起来会有点繁琐。
      

  5.   

    用什么办法不用判断的吗?在循环里使用if判断 会打断CPU的流水,使得程序运行迟缓。所以我们应该尽量少用if
      

  6.   

    其实最基本的就用:
    for(int i=0;i<ss.Length;i++)
    {
    if(ss[i]!=0)
    {
    //赋过了
    break;
    }
    }//这是vs2008+,.net3+的写法,就是找出不等于0的总数,如果大数据量的话还是上面的好用
    if (ss.Count(s => s != 0) > 0)
    {
    }
      

  7.   

    foreach(int i in ss)
    {
    if(i==null){}
    }
      

  8.   

    不如直接放在datatable中算了,dt.getchange()一下
      

  9.   

    你要就8个数,搞个struct存多好,多加个属性标识...干吗要用数组?
      

  10.   

    嘿。那你为何不用List<int>或者LinkedList<int>呢?
      

  11.   

    Dictionary<int,int>、SortedList<int,int>等也可以啊?!
      

  12.   

    摔倒,8个数的数组,For里加个IF就会打断CPU的流水造成程序运行迟缓? 你用纳表秒测试一下迟缓多少?
      

  13.   

    List就是一个动态数组。容器空间不足的时候会成倍增加,当然你也可以指定容器大小。
      

  14.   

    int[] a = new int[8];
    bool new_array = !a.Any(i => i != 0);
    Console.WriteLine(new_array);
    a[1] = 1;
    new_array = !a.Any(i => i != 0);
    Console.WriteLine(new_array);