【问题标题】:asp.net mvc LINQ, how to compare range of value in other range of valueasp.net mvc LINQ,如何比较其他值范围内的值范围
【发布时间】:2020-04-18 10:02:27
【问题描述】:

比较另一个范围的值,如果第一个范围内的任何值在第二个范围内可用,则结果应为 false,如果完全第一个范围在第二个范围内不可用,则为 true。

range 1 = 1 to 100
range 2 = 1 to 200
range 3 = 180 to 300;
range 4 = 301 to 400;

案例 1 -> range1 / range2 = false //

案例 2 -> range3 / range2 = false //

案例 3 -> range4 / range 2 = true

如何用 mvc linq 实现这个

提前致谢。

【问题讨论】:

    标签: linq model-view-controller asp.net-mvc-5


    【解决方案1】:

    下面的方法怎么样:

    var firstRange = Enumerable.Range(1, 100);
    var secondRange = Enumerable.Range(1, 200);
    var thirdRange = Enumerable.Range(180, 300);
    var fourthRange = Enumerable.Range(301, 400);
    
    var case1 = !firstRange.Any(element => secondRange.Contains(element));
    var case2 = !thirdRange.Any(element => secondRange.Contains(element));
    var case3 = !fourthRange.Any(element => secondRange.Contains(element));
    
    Console.WriteLine(case1);
    Console.WriteLine(case2);
    Console.WriteLine(case3);
    

    【讨论】:

    • @SAR,如果您需要任何帮助,请告诉我。
    【解决方案2】:

    你可以试试这种方式,here是链接现场演示。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    
    public class Program
    {
        public static void Main()
        {
            var firstRange = Enumerable.Range(1, 100);
            var secondRange = Enumerable.Range(1, 200);
            var thirdRange = Enumerable.Range(180, 300);
            var fourthRange = Enumerable.Range(301, 400);
    
            Console.WriteLine(!IsContainInRange(firstRange, secondRange));      
            Console.WriteLine(!IsContainInRange(thirdRange, secondRange));
            Console.WriteLine(!IsContainInRange(fourthRange, secondRange));
        }
    
        private static bool IsContainInRange(IEnumerable<int> range1, IEnumerable<int> range2)
        {
            return (from r1 in range1
                     join r2 in range2 on r1 equals r2 
                     select r1).Any();
        }
    }
    

    【讨论】:

    • 这能回答你的问题吗? @SAR
    • 亲爱的,两个答案都是一样的,但第一个更早,所以我接受这个答案,我投了你一票
    • 没关系。祝你有美好的一天。
    猜你喜欢
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 2020-07-27
    • 2015-11-27
    • 2016-03-31
    • 1970-01-01
    相关资源
    最近更新 更多