Tôi có hai mảng có cùng kích thước, tiếp nối các giá trị X và Y cho một số ô.Lọc hai mảng để tránh các giá trị Inf/NaN
Tôi cần tạo một số loại bảo vệ chống lại giá trị INF/NaN. Tôi cần phải tìm tất cả những gì các cặp giá trị (X, Y) mà cả hai, X và Y không INF cũng không NaN
Nếu tôi có một mảng, tôi có thể làm điều đó bằng lambdas:
var filteredValues = someValues.Where(d=> !(double.IsNaN(d) || double.IsInfinity(d))).ToList();
Bây giờ, đối với hai mảng, tôi sử dụng vòng lặp sau:
List<double> filteredX=new List<double>();
List<double> filteredY=new List<double>();
for(int i=0;i<XValues.Count;i++)
{
if(!double.IsNan(XValues[i]) &&
!double.IsInfinity(XValues[i]) &&
!double.IsNan(YValues[i]) &&
!double.IsInfinity(YValues[i]))
{
filteredX.Add(XValues[i]);
filteredY.Add(YValues[i]);
}
}
Có cách lọc hai mảng cùng một lúc bằng LINQ/lambdas, vì nó được thực hiện cho một mảng không?
Rất tiếc, tôi chỉ có thể sử dụng .NET 3.5.
lỗi nhẹ trong việc kê khai của mình. filterX được khai báo hai lần. Tôi chắc chắn bạn có nghĩa là lọc cho một trong số họ. : D –
Cảm ơn bạn! :) Đã chỉnh sửa. – Gacek
Những gì bạn tìm kiếm là khá khả thi trong .NET 3.5. Xem câu trả lời của tôi. –