c# - Find Closest number in Data as Class in C# WPF 有错误?
问题描述
我想从我的本地表(类)中找到最近的数字,但我有一个错误!
这是我的课:
public class ZnormalT
{
public double ZB { get; set; }
public double a0 { get; set; }
public double a01 { get; set; }
public double a02 { get; set; }
public double a03 { get; set; }
public double a04 { get; set; }
public double a05 { get; set; }
public double a06 { get; set; }
public double a07 { get; set; }
public double a08 { get; set; }
public double a09 { get; set; }
public List<ZnormalT> GetZnormalTs()
{
var model = new List<ZnormalT>
{ //Z_Blpha↓ ///////Z_Alpha →↓ . . .
new ZnormalT { ZB = 0 , a0 = 0.5 , a01 = 0.504 , a02 = 0.508 , a03 = 0.512 , a04 = 0.516 , a05 = 0.5199 , a06 = 0.5239 , a07 = 0.5279 , a08 = 0.5319 , a09 = 0.5359 } ,
new ZnormalT { ZB = 0.1 , a0 = 0.5398 , a01 = 0.5438 , a02 = 0.5478 , a03 = 0.5517 , a04 = 0.5557 , a05 = 0.5596 , a06 = 0.5636 , a07 = 0.5675 , a08 = 0.5714 , a09 = 0.5753 } ,
new ZnormalT { ZB = 0.2 , a0 = 0.5793 , a01 = 0.5832 , a02 = 0.5871 , a03 = 0.591 , a04 = 0.5948 , a05 = 0.5987 , a06 = 0.6026 , a07 = 0.6064 , a08 = 0.6103 , a09 = 0.6141 } ,
new ZnormalT { ZB = 0.3 , a0 = 0.6179 , a01 = 0.6217 , a02 = 0.6255 , a03 = 0.6293 , a04 = 0.6331 , a05 = 0.6368 , a06 = 0.6406 , a07 = 0.6443 , a08 = 0.648 , a09 = 0.6517 } ,
new ZnormalT { ZB = 0.4 , a0 = 0.6554 , a01 = 0.6591 , a02 = 0.6628 , a03 = 0.6664 , a04 = 0.67 , a05 = 0.6736 , a06 = 0.6772 , a07 = 0.6808 , a08 = 0.6844 , a09 = 0.6879 } ,
new ZnormalT { ZB = 0.5 , a0 = 0.6915 , a01 = 0.695 , a02 = 0.6985 , a03 = 0.7019 , a04 = 0.7054 , a05 = 0.7088 , a06 = 0.7123 , a07 = 0.7157 , a08 = 0.719 , a09 = 0.7224 } ,
new ZnormalT { ZB = 0.6 , a0 = 0.7257 , a01 = 0.7291 , a02 = 0.7324 , a03 = 0.7357 , a04 = 0.7389 , a05 = 0.7422 , a06 = 0.7454 , a07 = 0.7486 , a08 = 0.7517 , a09 = 0.7549 } ,
new ZnormalT { ZB = 0.7 , a0 = 0.758 , a01 = 0.7611 , a02 = 0.7642 , a03 = 0.7673 , a04 = 0.7704 , a05 = 0.7734 , a06 = 0.7764 , a07 = 0.7794 , a08 = 0.7823 , a09 = 0.7852 } ,
new ZnormalT { ZB = 0.8 , a0 = 0.7881 , a01 = 0.791 , a02 = 0.7939 , a03 = 0.7967 , a04 = 0.7995 , a05 = 0.8023 , a06 = 0.8051 , a07 = 0.8078 , a08 = 0.8106 , a09 = 0.8133 } ,
new ZnormalT { ZB = 0.9 , a0 = 0.8159 , a01 = 0.8186 , a02 = 0.8212 , a03 = 0.8238 , a04 = 0.8264 , a05 = 0.8289 , a06 = 0.8315 , a07 = 0.834 , a08 = 0.8365 , a09 = 0.8389 } ,
new ZnormalT { ZB = 1 , a0 = 0.8413 , a01 = 0.8438 , a02 = 0.8461 , a03 = 0.8485 , a04 = 0.8508 , a05 = 0.8531 , a06 = 0.8554 , a07 = 0.8577 , a08 = 0.8599 , a09 = 0.8621 } ,
new ZnormalT { ZB = 1.1 , a0 = 0.8643 , a01 = 0.8665 , a02 = 0.8686 , a03 = 0.8708 , a04 = 0.8729 , a05 = 0.8749 , a06 = 0.877 , a07 = 0.879 , a08 = 0.881 , a09 = 0.883 } ,
new ZnormalT { ZB = 1.2 , a0 = 0.8849 , a01 = 0.8869 , a02 = 0.8888 , a03 = 0.8907 , a04 = 0.8925 , a05 = 0.8944 , a06 = 0.8962 , a07 = 0.898 , a08 = 0.8997 , a09 = 0.9015 } ,
new ZnormalT { ZB = 1.3 , a0 = 0.9032 , a01 = 0.9049 , a02 = 0.9066 , a03 = 0.9082 , a04 = 0.9099 , a05 = 0.9115 , a06 = 0.9131 , a07 = 0.9147 , a08 = 0.9162 , a09 = 0.9177 } ,
new ZnormalT { ZB = 1.4 , a0 = 0.9192 , a01 = 0.9207 , a02 = 0.9222 , a03 = 0.9236 , a04 = 0.9251 , a05 = 0.9265 , a06 = 0.9279 , a07 = 0.9292 , a08 = 0.9306 , a09 = 0.9319 } ,
new ZnormalT { ZB = 1.5 , a0 = 0.9332 , a01 = 0.9345 , a02 = 0.9357 , a03 = 0.937 , a04 = 0.9382 , a05 = 0.9394 , a06 = 0.9406 , a07 = 0.9418 , a08 = 0.9429 , a09 = 0.9441 } ,
new ZnormalT { ZB = 1.6 , a0 = 0.9452 , a01 = 0.9463 , a02 = 0.9474 , a03 = 0.9484 , a04 = 0.9495 , a05 = 0.9505 , a06 = 0.9515 , a07 = 0.9525 , a08 = 0.9535 , a09 = 0.9545 } ,
new ZnormalT { ZB = 1.7 , a0 = 0.9554 , a01 = 0.9564 , a02 = 0.9573 , a03 = 0.9582 , a04 = 0.9591 , a05 = 0.9599 , a06 = 0.9608 , a07 = 0.9616 , a08 = 0.9625 , a09 = 0.9633 } ,
new ZnormalT { ZB = 1.8 , a0 = 0.9641 , a01 = 0.9649 , a02 = 0.9656 , a03 = 0.9664 , a04 = 0.9671 , a05 = 0.9678 , a06 = 0.9686 , a07 = 0.9693 , a08 = 0.9699 , a09 = 0.9706 } ,
new ZnormalT { ZB = 1.9 , a0 = 0.9713 , a01 = 0.9719 , a02 = 0.9726 , a03 = 0.9732 , a04 = 0.9738 , a05 = 0.9744 , a06 = 0.975 , a07 = 0.9756 , a08 = 0.9761 , a09 = 0.9767 } ,
new ZnormalT { ZB = 2 , a0 = 0.9772 , a01 = 0.9778 , a02 = 0.9783 , a03 = 0.9788 , a04 = 0.9793 , a05 = 0.9798 , a06 = 0.9803 , a07 = 0.9808 , a08 = 0.9812 , a09 = 0.9817 } ,
new ZnormalT { ZB = 2.1 , a0 = 0.9821 , a01 = 0.9826 , a02 = 0.983 , a03 = 0.9834 , a04 = 0.9838 , a05 = 0.9842 , a06 = 0.9846 , a07 = 0.985 , a08 = 0.9854 , a09 = 0.9857 } ,
new ZnormalT { ZB = 2.2 , a0 = 0.9861 , a01 = 0.9864 , a02 = 0.9868 , a03 = 0.9871 , a04 = 0.9875 , a05 = 0.9878 , a06 = 0.9881 , a07 = 0.9884 , a08 = 0.9887 , a09 = 0.989 } ,
new ZnormalT { ZB = 2.3 , a0 = 0.9893 , a01 = 0.9896 , a02 = 0.9898 , a03 = 0.9901 , a04 = 0.9904 , a05 = 0.9906 , a06 = 0.9909 , a07 = 0.9911 , a08 = 0.9913 , a09 = 0.9916 } ,
new ZnormalT { ZB = 2.4 , a0 = 0.9918 , a01 = 0.992 , a02 = 0.9922 , a03 = 0.9925 , a04 = 0.9927 , a05 = 0.9929 , a06 = 0.9931 , a07 = 0.9932 , a08 = 0.9934 , a09 = 0.9936 } ,
new ZnormalT { ZB = 2.5 , a0 = 0.9938 , a01 = 0.994 , a02 = 0.9941 , a03 = 0.9943 , a04 = 0.9945 , a05 = 0.9946 , a06 = 0.9948 , a07 = 0.9949 , a08 = 0.9951 , a09 = 0.9952 } ,
new ZnormalT { ZB = 2.6 , a0 = 0.9953 , a01 = 0.9955 , a02 = 0.9956 , a03 = 0.9957 , a04 = 0.9959 , a05 = 0.996 , a06 = 0.9961 , a07 = 0.9962 , a08 = 0.9963 , a09 = 0.9964 } ,
new ZnormalT { ZB = 2.7 , a0 = 0.9965 , a01 = 0.9966 , a02 = 0.9967 , a03 = 0.9968 , a04 = 0.9969 , a05 = 0.997 , a06 = 0.9971 , a07 = 0.9972 , a08 = 0.9973 , a09 = 0.9974 } ,
new ZnormalT { ZB = 2.8 , a0 = 0.9974 , a01 = 0.9975 , a02 = 0.9976 , a03 = 0.9977 , a04 = 0.9977 , a05 = 0.9978 , a06 = 0.9979 , a07 = 0.9979 , a08 = 0.998 , a09 = 0.9981 } ,
new ZnormalT { ZB = 2.9 , a0 = 0.9981 , a01 = 0.9982 , a02 = 0.9982 , a03 = 0.9983 , a04 = 0.9984 , a05 = 0.9984 , a06 = 0.9985 , a07 = 0.9985 , a08 = 0.9986 , a09 = 0.9986 } ,
new ZnormalT { ZB = 3 , a0 = 0.9987 , a01 = 0.9987 , a02 = 0.9987 , a03 = 0.9988 , a04 = 0.9988 , a05 = 0.9989 , a06 = 0.9989 , a07 = 0.9989 , a08 = 0.999 , a09 = 0.999 } ,
};
return model;
}
}
代码背后:
private void Btn_Process_Click(object sender, RoutedEventArgs e)
{
ZnormalT ZTBL = new ZnormalT();
// as Listy ALL Data in This Table
var AllData_Z = ZTBL.GetZnormalTs();
//Alpha Entered 0.05
double Alpha_num = Convert.ToDouble(Alpha_Text.Text);
double closest = AllData_Z.Aggregate<double>((x, y) => Math.Abs(x - Alpha_num) < Math.Abs(y - Alpha_num) ? x : y);
}
ERROR :
Severity Code Description Project File Line Suppression State
错误 CS1929 'List' 不包含 'Aggregate' 的定义,并且最佳扩展方法重载 'Queryable.Aggregate(IQueryable, Expression<Func<double, double, double>>)' 需要 'IQueryable' 类型的接收器
请帮忙
感谢您的帮助
解决方案
该错误是由两件事引起的,我认为第二件事是您尝试修复第一件事。
第一个问题是这样的:
Math.Abs(x - Alpha_num) < Math.Abs(y - Alpha_num)
x
y
这里是类型ZnormalT
,并且是Alpha_num
类型double
,您需要选择其中一个要与之比较的属性Alpha_num
,我选择了该ZB
属性,但您可以将其更改为您需要的任何内容。
Math.Abs(x.ZB - Alpha_num) < Math.Abs(y.ZB - Alpha_num)
第二个问题是这个AllData_Z.Aggregate<double>
double 是错误的类型参数,现在第一个问题已经解决了,你可以把它去掉,编译器会推断类型。
AllData_Z.Aggregate((x, y) => Math.Abs(x.ZB - Alpha_num) < Math.Abs(y.ZB - Alpha_num) ? x : y);
我整理了一些变量名,并将其放入下面的一个小测试控制台应用程序中。
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
ZnormalT ZTBL = new ZnormalT();
// as Listy ALL Data in This Table
var AllData_Z = ZTBL.GetZnormalTs();
//Alpha Entered 0.05
double Alpha_num = 1.875;
double result = AllData_Z.Aggregate((closest, next) => Math.Abs(closest.ZB - Alpha_num) < Math.Abs(next.ZB - Alpha_num) ? closest : next).ZB;
Console.WriteLine("Closest is " + result);
}
}
public class ZnormalT
{
public double ZB { get; set; }
public double a0 { get; set; }
public double a01 { get; set; }
public double a02 { get; set; }
public double a03 { get; set; }
public double a04 { get; set; }
public double a05 { get; set; }
public double a06 { get; set; }
public double a07 { get; set; }
public double a08 { get; set; }
public double a09 { get; set; }
public List<ZnormalT> GetZnormalTs()
{
var model = new List<ZnormalT>
{ //Z_Blpha↓ ///////Z_Alpha →↓ . . .
new ZnormalT { ZB = 0 , a0 = 0.5 , a01 = 0.504 , a02 = 0.508 , a03 = 0.512 , a04 = 0.516 , a05 = 0.5199 , a06 = 0.5239 , a07 = 0.5279 , a08 = 0.5319 , a09 = 0.5359 } ,
new ZnormalT { ZB = 0.1 , a0 = 0.5398 , a01 = 0.5438 , a02 = 0.5478 , a03 = 0.5517 , a04 = 0.5557 , a05 = 0.5596 , a06 = 0.5636 , a07 = 0.5675 , a08 = 0.5714 , a09 = 0.5753 } ,
new ZnormalT { ZB = 0.2 , a0 = 0.5793 , a01 = 0.5832 , a02 = 0.5871 , a03 = 0.591 , a04 = 0.5948 , a05 = 0.5987 , a06 = 0.6026 , a07 = 0.6064 , a08 = 0.6103 , a09 = 0.6141 } ,
new ZnormalT { ZB = 0.3 , a0 = 0.6179 , a01 = 0.6217 , a02 = 0.6255 , a03 = 0.6293 , a04 = 0.6331 , a05 = 0.6368 , a06 = 0.6406 , a07 = 0.6443 , a08 = 0.648 , a09 = 0.6517 } ,
new ZnormalT { ZB = 0.4 , a0 = 0.6554 , a01 = 0.6591 , a02 = 0.6628 , a03 = 0.6664 , a04 = 0.67 , a05 = 0.6736 , a06 = 0.6772 , a07 = 0.6808 , a08 = 0.6844 , a09 = 0.6879 } ,
new ZnormalT { ZB = 0.5 , a0 = 0.6915 , a01 = 0.695 , a02 = 0.6985 , a03 = 0.7019 , a04 = 0.7054 , a05 = 0.7088 , a06 = 0.7123 , a07 = 0.7157 , a08 = 0.719 , a09 = 0.7224 } ,
new ZnormalT { ZB = 0.6 , a0 = 0.7257 , a01 = 0.7291 , a02 = 0.7324 , a03 = 0.7357 , a04 = 0.7389 , a05 = 0.7422 , a06 = 0.7454 , a07 = 0.7486 , a08 = 0.7517 , a09 = 0.7549 } ,
new ZnormalT { ZB = 0.7 , a0 = 0.758 , a01 = 0.7611 , a02 = 0.7642 , a03 = 0.7673 , a04 = 0.7704 , a05 = 0.7734 , a06 = 0.7764 , a07 = 0.7794 , a08 = 0.7823 , a09 = 0.7852 } ,
new ZnormalT { ZB = 0.8 , a0 = 0.7881 , a01 = 0.791 , a02 = 0.7939 , a03 = 0.7967 , a04 = 0.7995 , a05 = 0.8023 , a06 = 0.8051 , a07 = 0.8078 , a08 = 0.8106 , a09 = 0.8133 } ,
new ZnormalT { ZB = 0.9 , a0 = 0.8159 , a01 = 0.8186 , a02 = 0.8212 , a03 = 0.8238 , a04 = 0.8264 , a05 = 0.8289 , a06 = 0.8315 , a07 = 0.834 , a08 = 0.8365 , a09 = 0.8389 } ,
new ZnormalT { ZB = 1 , a0 = 0.8413 , a01 = 0.8438 , a02 = 0.8461 , a03 = 0.8485 , a04 = 0.8508 , a05 = 0.8531 , a06 = 0.8554 , a07 = 0.8577 , a08 = 0.8599 , a09 = 0.8621 } ,
new ZnormalT { ZB = 1.1 , a0 = 0.8643 , a01 = 0.8665 , a02 = 0.8686 , a03 = 0.8708 , a04 = 0.8729 , a05 = 0.8749 , a06 = 0.877 , a07 = 0.879 , a08 = 0.881 , a09 = 0.883 } ,
new ZnormalT { ZB = 1.2 , a0 = 0.8849 , a01 = 0.8869 , a02 = 0.8888 , a03 = 0.8907 , a04 = 0.8925 , a05 = 0.8944 , a06 = 0.8962 , a07 = 0.898 , a08 = 0.8997 , a09 = 0.9015 } ,
new ZnormalT { ZB = 1.3 , a0 = 0.9032 , a01 = 0.9049 , a02 = 0.9066 , a03 = 0.9082 , a04 = 0.9099 , a05 = 0.9115 , a06 = 0.9131 , a07 = 0.9147 , a08 = 0.9162 , a09 = 0.9177 } ,
new ZnormalT { ZB = 1.4 , a0 = 0.9192 , a01 = 0.9207 , a02 = 0.9222 , a03 = 0.9236 , a04 = 0.9251 , a05 = 0.9265 , a06 = 0.9279 , a07 = 0.9292 , a08 = 0.9306 , a09 = 0.9319 } ,
new ZnormalT { ZB = 1.5 , a0 = 0.9332 , a01 = 0.9345 , a02 = 0.9357 , a03 = 0.937 , a04 = 0.9382 , a05 = 0.9394 , a06 = 0.9406 , a07 = 0.9418 , a08 = 0.9429 , a09 = 0.9441 } ,
new ZnormalT { ZB = 1.6 , a0 = 0.9452 , a01 = 0.9463 , a02 = 0.9474 , a03 = 0.9484 , a04 = 0.9495 , a05 = 0.9505 , a06 = 0.9515 , a07 = 0.9525 , a08 = 0.9535 , a09 = 0.9545 } ,
new ZnormalT { ZB = 1.7 , a0 = 0.9554 , a01 = 0.9564 , a02 = 0.9573 , a03 = 0.9582 , a04 = 0.9591 , a05 = 0.9599 , a06 = 0.9608 , a07 = 0.9616 , a08 = 0.9625 , a09 = 0.9633 } ,
new ZnormalT { ZB = 1.8 , a0 = 0.9641 , a01 = 0.9649 , a02 = 0.9656 , a03 = 0.9664 , a04 = 0.9671 , a05 = 0.9678 , a06 = 0.9686 , a07 = 0.9693 , a08 = 0.9699 , a09 = 0.9706 } ,
new ZnormalT { ZB = 1.9 , a0 = 0.9713 , a01 = 0.9719 , a02 = 0.9726 , a03 = 0.9732 , a04 = 0.9738 , a05 = 0.9744 , a06 = 0.975 , a07 = 0.9756 , a08 = 0.9761 , a09 = 0.9767 } ,
new ZnormalT { ZB = 2 , a0 = 0.9772 , a01 = 0.9778 , a02 = 0.9783 , a03 = 0.9788 , a04 = 0.9793 , a05 = 0.9798 , a06 = 0.9803 , a07 = 0.9808 , a08 = 0.9812 , a09 = 0.9817 } ,
new ZnormalT { ZB = 2.1 , a0 = 0.9821 , a01 = 0.9826 , a02 = 0.983 , a03 = 0.9834 , a04 = 0.9838 , a05 = 0.9842 , a06 = 0.9846 , a07 = 0.985 , a08 = 0.9854 , a09 = 0.9857 } ,
new ZnormalT { ZB = 2.2 , a0 = 0.9861 , a01 = 0.9864 , a02 = 0.9868 , a03 = 0.9871 , a04 = 0.9875 , a05 = 0.9878 , a06 = 0.9881 , a07 = 0.9884 , a08 = 0.9887 , a09 = 0.989 } ,
new ZnormalT { ZB = 2.3 , a0 = 0.9893 , a01 = 0.9896 , a02 = 0.9898 , a03 = 0.9901 , a04 = 0.9904 , a05 = 0.9906 , a06 = 0.9909 , a07 = 0.9911 , a08 = 0.9913 , a09 = 0.9916 } ,
new ZnormalT { ZB = 2.4 , a0 = 0.9918 , a01 = 0.992 , a02 = 0.9922 , a03 = 0.9925 , a04 = 0.9927 , a05 = 0.9929 , a06 = 0.9931 , a07 = 0.9932 , a08 = 0.9934 , a09 = 0.9936 } ,
new ZnormalT { ZB = 2.5 , a0 = 0.9938 , a01 = 0.994 , a02 = 0.9941 , a03 = 0.9943 , a04 = 0.9945 , a05 = 0.9946 , a06 = 0.9948 , a07 = 0.9949 , a08 = 0.9951 , a09 = 0.9952 } ,
new ZnormalT { ZB = 2.6 , a0 = 0.9953 , a01 = 0.9955 , a02 = 0.9956 , a03 = 0.9957 , a04 = 0.9959 , a05 = 0.996 , a06 = 0.9961 , a07 = 0.9962 , a08 = 0.9963 , a09 = 0.9964 } ,
new ZnormalT { ZB = 2.7 , a0 = 0.9965 , a01 = 0.9966 , a02 = 0.9967 , a03 = 0.9968 , a04 = 0.9969 , a05 = 0.997 , a06 = 0.9971 , a07 = 0.9972 , a08 = 0.9973 , a09 = 0.9974 } ,
new ZnormalT { ZB = 2.8 , a0 = 0.9974 , a01 = 0.9975 , a02 = 0.9976 , a03 = 0.9977 , a04 = 0.9977 , a05 = 0.9978 , a06 = 0.9979 , a07 = 0.9979 , a08 = 0.998 , a09 = 0.9981 } ,
new ZnormalT { ZB = 2.9 , a0 = 0.9981 , a01 = 0.9982 , a02 = 0.9982 , a03 = 0.9983 , a04 = 0.9984 , a05 = 0.9984 , a06 = 0.9985 , a07 = 0.9985 , a08 = 0.9986 , a09 = 0.9986 } ,
new ZnormalT { ZB = 3 , a0 = 0.9987 , a01 = 0.9987 , a02 = 0.9987 , a03 = 0.9988 , a04 = 0.9988 , a05 = 0.9989 , a06 = 0.9989 , a07 = 0.9989 , a08 = 0.999 , a09 = 0.999 } ,
};
return model;
}
}
根据您的评论,如果您想在所有属性中找到最接近的数字,则只需将查询更改为以下查询。
double result = AllData_Z.SelectMany(x => new [] {x.a0, x.a01, x.a02, x.a03, x.a04, x.a05, x.a06, x.a07, x.a08, x.a09, x.ZB })
.Aggregate((closest, next) => Math.Abs(closest - Alpha_num) < Math.Abs(next - Alpha_num) ? closest : next);
推荐阅读
- ruby-on-rails - what to check if an attribute must be present in request payload of Json
- python - 文本文件中值的 Python 拆分函数
- javascript - React Js - get json array Image to JSX page of react dynamically
- java - How to count number of requests in spring boot app?
- java - how can i remove item from my collection in java
- firebase - Flutter Firebase Filestore - 投射返回的列表
进入列表 - elasticsearch - 弹性搜索如何使用不得在过滤器内查询
- laravel - 如何在 laravel 中转换并显示数据库中的值
- nuxt.js - 在 Nuxt.JS 中为 Autodesk Forge 查看器创建自定义工具栏扩展的正确方法是什么?
- javascript - 如何在 vue js 中集成类似 Excel 的表格排序和过滤