Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
验证C#中列表的数据类型?如果可能的话,由林克_C#_.net_Linq_List - Fatal编程技术网

验证C#中列表的数据类型?如果可能的话,由林克

验证C#中列表的数据类型?如果可能的话,由林克,c#,.net,linq,list,C#,.net,Linq,List,我有一个包含ID(int)、Name(String)、Salary(decimal)的列表。该列表已经填充了90行。我想验证除整数值之外的所有ID,以便用于Salary和Name。林克有可能吗。我正在将framework 4.5与VS2012一起使用任何快速解决方案。我假设您想在这里查看薪资 其中(x=>x.Salary.Equals((int)x.Salary) 有点脏,我们将它转换为int(丢失小数点,然后查看它是否与前面的值相同) 或 其中(x=>x.Salary.Equals(数学四舍五

我有一个包含ID(int)、Name(String)、Salary(decimal)的列表。该列表已经填充了90行。我想验证除整数值之外的所有ID,以便用于Salary和Name。林克有可能吗。我正在将framework 4.5与VS2012一起使用任何快速解决方案。

我假设您想在这里查看薪资

其中(x=>x.Salary.Equals((int)x.Salary)

有点脏,我们将它转换为int(丢失小数点,然后查看它是否与前面的值相同)

其中(x=>x.Salary.Equals(数学四舍五入(x.Salary,0))


或者只使用Int32.TryParse-不确定为什么要对linq执行此操作。

我认为您需要类似的操作

class MyClass
{
    int ID;
    string Name;
    decimal Salary;
}

...

bool IsValid(MyClass myInstance)
{
   int nameInt;
   return ((myInstance.Salary % 1) == 0) && // check salary
          int.TryParse(myInstance.Name, out nameInt); // check name
}

...

 // verify that all items in list are valid
List<MyClass> myList = ...
bool listValid = myList.All(IsValid)
class-MyClass
{
int-ID;
字符串名;
十进制工资;
}
...
bool是有效的(MyClass myInstance)
{
int nameInt;
返回((myInstance.Salary%1)==0)&&&//检查工资
int.TryParse(myInstance.Name,out-nameInt);//检查名称
}
...
//验证列表中的所有项目是否有效
列表myList=。。。
bool listValid=myList.All(IsValid)

如果id的类型为int,它如何能保存非整数值?上述方法应该有效。Where子句将返回未通过验证的值。