小编use*_*996的帖子

比较数组或其他方法

我是C#的新手.我一直在寻找一种简单的方法来检查数组中的所有值是否在下限和上限之间,这些值对于数组中的每个元素都是不同的.我还对每个数据集进行了多次评估.这是我使用的当前方法,这很好,但我希望使用更有效的方法.似乎一种韵律方法似乎与我需要的方式相符,但我不确定如何使其发挥作用.

最后还有一些较小的问题由此引出.

我使用的数组通常有大约20个元素,而不是这里的5个元素.

列名已被更改以保护无辜......

int x;
bool failed;
double [] myArray = new double [5];

for(int a = 0;a<= Convert.ToInt32(temp.Compute("Max(Col1)",string.Empty));a++)
{
    failed = false;

    IEnumerable<DataRow>rows = temp.AsEnumerable()
                                   .Where(r=>r.Field<int>("Col1") == a
                                     && r.Field<int>("Col2") > 0
                                     && r.Field<int>("Col2") < 2000
                                     && r.Field<decimal>("Col3") > 0
                                     && r.Field<decimal>("Col3") < 1000
                                   );

    myArray[0] = rows.AsEnumerable().ToList().Count;
    myArray[1] = rows.AsEnumerable().Sum(row => row.Field<int>("Col4"));
    myArray[2] = rows.AsEnumerable().Average(row => row.Field<int>("Col4"));
    myArray[3] = rows.AsEnumerable().Max(row => row.Field<int>("Col5"));
    myArray[4] = rows.AsEnumerable().Min(row => row.Field<int>("Col5"));

    //CHECK 1 ////////////////////////////////////////
    double [] lowerLimit1 = {0,10,0,50000,2};
    double[] upperLimit1 …
Run Code Online (Sandbox Code Playgroud)

c# linq arrays

5
推荐指数
1
解决办法
163
查看次数

检查数组中的特定值

我有2个数组,我在下面比较.

int[] values = { 1, 2, 3, 4, etc };

int[,] limits = { { 1, 2 }, { 2, 5 }, { 2, 6 },etc };
Run Code Online (Sandbox Code Playgroud)

我可以非常容易地比较数组的所有元素,或者如果数组中的特定元素是顺序的,则使用以下代码查看它们是否都在相应的限制内,

 if (Enumerable.Range(0, values.Length).All(x => values[x] >= limits[x, 0] && values[x] <= limits[x, 1]))
 {
    //Do something            
 };
Run Code Online (Sandbox Code Playgroud)

但是,如果我只想检查数组中的特定非顺序缺陷,例如索引0,4,6和9,我该怎么做?预先感谢.

c# linq arrays lambda

0
推荐指数
1
解决办法
56
查看次数

标签 统计

arrays ×2

c# ×2

linq ×2

lambda ×1