我是linq的新手,并试图学习一些基础知识?功能。我有一个字符串,我分裂成一个字符串数组,我想查询数组的值。我的代码。
string input = "a1,b2,c3,d4";
var collection = input.Split(',');
string output = collection.OfType<string>().Where(r => (string)r.Contains("a").FirstOrDefaule();
我认为我在正确的轨道上,但它并不完全存在。我希望输出为a1。
错误是无法将bool转换为字符串,这是有道理的,但是如果不使用contains方法,你会怎么做呢?
答案 0 :(得分:5)
此代码应该有效:
string output = collection.First(r => r.Contains("a"));
Contains
可能是最有效的方式。
Where
为您提供所有元素的新列表,其中包含&#34; a&#34 ;; First
(或FirstOrDefault
)将返回单个值。
答案 1 :(得分:0)
为什么在Where子句中使用强制转换为字符串?你不需要它。 试试这个
string output= urls.OfType<string>().Where(r => r.Contains("a")).FirstOrDefault();
答案 2 :(得分:0)
试试这个
string output= collection.Where(r => r.Contains("a")).FirstOrDefault();