C# 检查列表中是否存在与单个指定值相关的值范围

C# 检查列表中是否存在与单个指定值相关的值范围,c#,.net,string,list,linq,C#,.net,String,List,Linq,我目前正在编写逻辑来检查给定字符串是否包含与特定条件对应的特定范围的值 我试图实现的逻辑如下,有一个特定的变量string value=“12”赋值如下,假设我有一个值列表,我想检查是否有12.x的值,这可能是12.0.1或12.2,简单地说,我想检查列表是否包含12.something(12点something) 我在如何改进上述行为方面没有取得成功,如果有人知道是否有可能实施,我将非常感激 我的尝试代码如下: static void Main(string[] args) { Lis

我目前正在编写逻辑来检查给定字符串是否包含与特定条件对应的特定范围的值

我试图实现的逻辑如下,有一个特定的变量
string value=“12”赋值如下,假设我有一个值列表,我想检查是否有12.x的值,这可能是12.0.1或12.2,简单地说,我想检查列表是否包含12.something(12点something)

我在如何改进上述行为方面没有取得成功,如果有人知道是否有可能实施,我将非常感激

我的尝试代码如下:

static void Main(string[] args)
{
    List<string> values = new List<string>();
    values.Add("12.0.1");
    values.Add("12.2");

    string value = "12";

    //Logic to check if values with 12.x / 12.something is available 
}
static void Main(字符串[]args)
{
列表值=新列表();
增加(“12.0.1”);
增加(“12.2”);
字符串值=“12”;
//检查12.x/12.something值是否可用的逻辑
}
试试:

这将返回所有符合条件的值。如果您想知道有多少个,请使用
Count
而不是
Where
;如果您只想知道是否至少有一个值符合标准,但您对该值本身不感兴趣,请使用
Any

尝试以下方法:

static void Main(string[] args)
{
    List<string> values = new List<string>();
    values.Add("12.0.1");
    values.Add("12.2");

    string value = "12";

    var isExists = values.Any(x => x.StartsWith($"{value}."));
}
static void Main(字符串[]args)
{
列表值=新列表();
增加(“12.0.1”);
增加(“12.2”);
字符串值=“12”;
var isExists=values.Any(x=>x.StartsWith($“{value}”);
}
使用

如果您只想检查该值是否出现在列表中,可以编写:

values.Any(e => e.StartsWith(value));
如果您想知道该值在列表中出现的次数:

values.Count(e => e.StartsWith(value));

@塞尔文:好的,有什么问题吗<代码>“120.2”。StartsWith(“12”)
返回false。@Selvin对于
的代码应返回什么,并且只包含字符串
“120”
?它应该返回
False
,我的解决方案也会返回
False
。@我们确实需要它。最后,以所述模式选择tho?@Devss是。如果您正在查找示例版本
“12.x”
,则应该搜索字符串中的常量部分,在您的示例中,该部分为“12”
values.Count(e => e.StartsWith(value));