我有一个值为{ "01.0", "01.4", "01.5", "0.20", "02.5", "02.6", "03.0", "03.2" }
的字符串数组
如何使用C#过滤整数值(1,2,3)?
答案 0 :(得分:3)
首先执行select将字符串值转换为小数。然后使用剩余函数来查找哪些值在除以1时具有零余数。这应该只得到整数值。
var array = new[]{"01.0", "01.4", "01.5", "02.0", "02.5", "02.6", "03.0", "03.2"};
array.Select(i => Decimal.Parse(i)).Where(d => Decimal.Remainder(d, 1) == 0);
答案 1 :(得分:3)
将字符串解析为浮点数,只选择那些整数并抛弃重复的条目:
var input = new[] { "01.0", "01.4", "01.5", "0.20", "02.5",
"02.6", "03.0", "03.2" };
var integers = input.Select(i =>
double.Parse(i,
System.Globalization.CultureInfo.InvariantCulture))
.Where(d => d == (int)d)
.Distinct().ToArray();
回答经过编辑,考虑到OP后来的评论。
答案 2 :(得分:0)
只要数组是字符串,或者可以转换为字符串,就可以使用int.Parse(array [here])。
答案 3 :(得分:0)
var array = new[] { "01.0", "01.4", "01.5", "02.0", "02.5", "02.6", "03.0", "03.2" };
int foo;
var integers = (from a in array where decimal.Remainder(decimal.Parse(a), 1) == 0 select (int)decimal.Parse(a));
foreach (var integer in integers)
{
Console.WriteLine(integer);
}
Console.ReadLine();