Arrays 从索引模X中查找linq中具有特定值的所有元素
如何修改我的方法,只检查模17时等于零的索引? 我想从这个索引中得到所有同样为零的项 我的Arrays 从索引模X中查找linq中具有特定值的所有元素,arrays,linq,list,indexing,modulo,Arrays,Linq,List,Indexing,Modulo,如何修改我的方法,只检查模17时等于零的索引? 我想从这个索引中得到所有同样为零的项 我的数组列表正在存储值为0,1的数组 这是我的方法: public List<int> Funct(List<byte[]> listOfArrays) { List<int> pixelsList = new List<int>(); foreach (byte[] t in listOfArray
数组列表
正在存储值为0,1的数组
这是我的方法:
public List<int> Funct(List<byte[]> listOfArrays)
{
List<int> pixelsList = new List<int>();
foreach (byte[] t in listOfArrays)
{
//count how many items with value 0
var pixelsInArray = t.Count(n => n == 0);
var firstElement = Array.FindIndex(t, i => i == 0);
var lastElement = Array.FindLastIndex(t, i => i == 0);
pixelsList.Add(pixelsInArray);
}
return pixelsList;
}
公共列表函数(列表阵列)
{
列表像素列表=新列表();
foreach(listOfArrays中的字节[]t)
{
//计算值为0的项目数
var pixelsInArray=t.Count(n=>n==0);
var firstElement=Array.FindIndex(t,i=>i==0);
var lastElement=Array.FindLastIndex(t,i=>i==0);
添加(像素数组);
}
返回像素列表;
}
在该方法中,我搜索所有索引
谢谢你的帮助
注:如果需要更正,请检查我的语法。如果我理解正确,这应该可以解决问题:
public List<int> Funct(List<byte[]> listOfArrays)
{
List<int> pixelsList = new List<int>();
foreach (byte[] t in listOfArrays)
{
int counter = 0;
t.ForEachWithIndex((value, index) =>
{
if (value == 0 && index % 17 == 0)
{
// your values
counter++;
}
});
pixelsList.Add(counter);
}
return pixelsList;
}
公共列表函数(列表阵列)
{
列表像素列表=新列表();
foreach(listOfArrays中的字节[]t)
{
int计数器=0;
t、 ForEachWithIndex((值,索引)=>
{
如果(值==0&&index%17==0)
{
//你的价值观
计数器++;
}
});
像素列表添加(计数器);
}
返回像素列表;
}
扩展名位于:
命名空间MyExtensions
{
公共静态类ForEachExtensions
{
公共静态void ForEachWithIndex(此IEnumerable可枚举,操作处理程序)
{
int-idx=0;
foreach(可枚举中的T项)
处理程序(项目,idx++);
}
}
}
如果我正确理解了以下内容,这应该可以解决问题:
public List<int> Funct(List<byte[]> listOfArrays)
{
List<int> pixelsList = new List<int>();
foreach (byte[] t in listOfArrays)
{
int counter = 0;
t.ForEachWithIndex((value, index) =>
{
if (value == 0 && index % 17 == 0)
{
// your values
counter++;
}
});
pixelsList.Add(counter);
}
return pixelsList;
}
公共列表函数(列表阵列)
{
列表像素列表=新列表();
foreach(listOfArrays中的字节[]t)
{
int计数器=0;
t、 ForEachWithIndex((值,索引)=>
{
如果(值==0&&index%17==0)
{
//你的价值观
计数器++;
}
});
像素列表添加(计数器);
}
返回像素列表;
}
扩展名位于:
命名空间MyExtensions
{
公共静态类ForEachExtensions
{
公共静态void ForEachWithIndex(此IEnumerable可枚举,操作处理程序)
{
int-idx=0;
foreach(可枚举中的T项)
处理程序(项目,idx++);
}
}
}
是的,byt不立即添加到列表中,只需计算:)但此代码也很有用OK,我修复它:)这就是你的意思吗?是的,它应该是,但它对我不起作用<无法识别代码>ForEachWithIndex
。我正在尝试找出原因。我将这些类放在相同的名称空间中,您确定要将“using”添加到ForEachExtensions(如果它在另一个名称空间中)?是的:)您应该将它放在项目中的某个位置,默认情况下它不在.Net framework中是的,byt不立即添加到列表中,而只是计数:)但这段代码也很有用,我修好了:)这就是你的意思吗?是的,它应该是,但它对我不起作用<无法识别代码>ForEachWithIndex。我正在尝试找出原因。我将这些类放在相同的命名空间中,您确定要将“using”添加到ForEachExtensions(如果它在另一个命名空间中)?yeap:)您应该将它放在项目中的某个位置,默认情况下它不在.Net framework中