我有一个包含以下数据的数据表
SrNo Roll Name
1 1 XYZ
99 45 ABC
150 120 POQ
10 9 RTY
我想通过 0-100 和 100-200 找出 srno 范围的 rollnumber 和 Name
所以输出将是
// For the range 0-100
SrNo Roll Name
1 1 XYZ
99 45 ABC
10 9 RTY
// & For 100-200
SrNo Roll Name
150 120 POQ
我正在尝试使用 if-else
语句通过 LINQ 实现。
如果有任何其他问题,请使用 LINQ 提出建议!
最佳答案
代码:
var items =
new[]
{
new { SrNo = 1, Roll = 1, Name = "XYZ" },
new { SrNo = 99, Roll = 45, Name = "ABC" },
new { SrNo = 150, Roll = 120, Name = "POQ" },
new { SrNo = 10, Roll = 9, Name = "RTY" }
};
const int NumberOfItemsInRange = 100;
var ranges = items
.GroupBy(arg => arg.SrNo / NumberOfItemsInRange)
.Select(arg => new { RangeNumber = arg.Key, Items = arg.ToList() })
.ToList();
foreach (var range in ranges)
{
Console.WriteLine("Range {0}-{1}", range.RangeNumber * NumberOfItemsInRange, (range.RangeNumber + 1) * NumberOfItemsInRange);
foreach (var item in range.Items)
Console.WriteLine("{0,10} {1,10} {2,10}", item.SrNo, item.SrNo, item.Name);
}
输出:
Range 0-100
1 1 XYZ
99 99 ABC
10 10 RTY
Range 100-200
150 150 POQ
关于c# - Linq 中的 IF else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6183022/