目录
介绍
问题
第一个解决方案
第二种解决方案
结论
介绍大多数时候,我们从查询数据模型的角度考虑 LINQ。
然而,它可以为问题提供一组替代解决方案,我们只是以一种非常原始和基本的方式进行演练。那是因为它用于对任何数据类型的泛型执行操作。
问题我最近处理的一项任务是找出一系列数字中的差距。让我们来讨论一下当一个人在第一阶段着手这项任务时想到的第一个解决方案。
第一个解决方案为了能够跟上讨论,创建一个 .NET 控制台应用程序并将以下代码复制到program.cs类文件中:
//################
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
namespace NumberSeriesGapFinder
{
class Program
{
static void Main(string[] args)
{
string inputNumbers;
Console.WriteLine("Enter a set of numbers comma separated,
make sure there is no gap in the set");
Console.WriteLine("for example:1,2,4,5 has a gap while 6,7,8,9 has no gap");
inputNumbers = Console.ReadLine();
try
{
CheckGap(inputNumbers);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
static void CheckGap(string inputNumbers)
{
bool GapExist = false;
List SetElements;
SetElements = inputNumbers.Split(",".ToCharArray()[0]).ToList();
for (int i=0;iint.Parse(w) 0;
if (GapExist)
{
Console.WriteLine("Gap Exist in the series, please try again");
inputNumbers = Console.ReadLine();
CheckGap2(inputNumbers);
}
else
{
Console.WriteLine("The series entered has no gaps");
}
}
//##########
请注意,我们已经使用LINQ
- 在系列与其本身之间执行left join运算符(您可以使用方法内的注释刷新有关left的信息)。任何其后续不存在的数字都将满足where条件。
- 选择元素最大值的元素。不必以这种方式按顺序输入系列。
现在从main方法调用方法并尝试。
结论大多数时候,我们从查询数据模型的角度考虑LINQ。
但是,它可以为我们只是以非常原始和基本的方式钻研的问题提供一组替代解决方案。那是因为它用于对任何数据类型的泛型执行操作。
https://www.codeproject.com/Tips/5296621/An-Example-of-a-LINQ-Approach-to-Solve-Recurring-P