Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用linq查询获取唯一数字_C#_Linq - Fatal编程技术网

C# 无法使用linq查询获取唯一数字

C# 无法使用linq查询获取唯一数字,c#,linq,C#,Linq,我只想得到字符串中的数字部分,即: Hello World 5 因此结果必须是:5 我所做的是: var temp = from c in "Hello World 5" select c where Char.IsDigit(c); 但是我在c上得到一个错误,编译器需要一个但我不明白为什么,查询还没有结束。您的语法错误,select位于末尾: var temp = from c in "Hello World 5" wher

我只想得到字符串中的数字部分,即:

Hello World 5
因此结果必须是:
5

我所做的是:

var temp = from c in "Hello World 5"
           select c
           where Char.IsDigit(c);

但是我在
c
上得到一个错误,编译器需要一个
但我不明白为什么,查询还没有结束。

您的语法错误,
select
位于末尾:

var temp = from c in "Hello World 5"
           where Char.IsDigit(c)
           select c;
由于您将
选择移动到了错误的位置,编译器需要一个
之前(然后也是意外的)
其中



请注意,
temp
不是单个字符,而是包含单个元素的序列
'5'

您的语法错误,
select
位于末尾:

var temp = from c in "Hello World 5"
           where Char.IsDigit(c)
           select c;
由于您将
选择移动到了错误的位置,编译器需要一个
之前(然后也是意外的)
其中



请注意,
temp
不是单个字符,而是包含单个元素的序列
'5'

顺序是
-
其中
-
选择
,因此您应该重新排序
其中
选择

var temp = from c in "Hello World 5" where Char.IsDigit(c) select c;
因此,这是一个
IEnumerable

您还可以使用等效的函数调用,在这种情况下,不需要
select

var temp = "Hello World 5".Where(Char.IsDigit);
编辑:如果希望将LINQ查询的结果合并为字符串,可以使用
string.Concat

csharp> String.Concat("Hello World 5".Where(Char.IsDigit)); 
"5"
csharp> String.Concat(from c in "Hello World 5" where Char.IsDigit(c) select c);
"5"

顺序是从
-
其中
-
选择
,因此您应该重新排序
其中
选择

var temp = from c in "Hello World 5" where Char.IsDigit(c) select c;
因此,这是一个
IEnumerable

您还可以使用等效的函数调用,在这种情况下,不需要
select

var temp = "Hello World 5".Where(Char.IsDigit);
编辑:如果希望将LINQ查询的结果合并为字符串,可以使用
string.Concat

csharp> String.Concat("Hello World 5".Where(Char.IsDigit)); 
"5"
csharp> String.Concat(from c in "Hello World 5" where Char.IsDigit(c) select c);
"5"

@马里奥塞达:你期望得到什么结果?我需要提取5,所以你想要第一场比赛?或者一个包含所有匹配项的字符串?只有数字5,所以删除“Hello World”:@MarioSerda:但是你想要一个
字符
,还是
字符串
?@MarioSerda:你期望得到什么结果?我需要提取5,所以你想要第一个匹配项?或者一个包含所有匹配项的字符串?只有数字5,所以删除“Hello World”:@MarioSerda:但是你想要一个
字符
,还是
字符串