且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何使用linq查找列表中的列表conatins特定的字符串值

更新时间:2022-11-14 12:09:25

请看一下例子:



  Dim  MainList  As  List( Of  List( Of  字符串))= 列表( Of 列表(  字符串))来自_ 
{_
列表( Of 字符串)来自{ a b c},_
列表( Of String )来自{ d a f c h},_
列表( 字符串pan>)从{ i c},_
列表( Of String )来自{ k d h},_
列表( Of 字符串)来自{ e o p},_
列表( 字符串)来自{ q f s g u},_
列表( String )来自{ v z g z} _
}

Dim SearchValue 作为 字符串 = a

' #1
' 返回包含serached值的子列表
Dim subListContainingSerachedValue = _
MainList _
。 Where( Function (x)x.Contains(SearchValue))_
.ToList()


' #2
' 返回AnonymousType(Of String,String,Boolean)
Dim OnlySearchedValues = _
MainList _
.SelectMany(功能(x)_
x。选择功能(y) 使用 _
{
.OrigValue = y,_
.SearchedValue = SearchValue,_
.IsOnTheList = y.Any( Function (z)z = SearchValue)_
})_
)_
.ToList()





结果:



'#1

 List< String> {a,b,c} 
List< String> {d,a,f,c,h}





'#2

 OrigValue SearchedValue IsOnTheList 
aa True
ba False
ca False
da False
aa True
fa False
ca假
ha假
ia假
ca假
ka假
da假False
ha假
ea假
oa假
pa假
qa错误
fa错误
sa错误
ga错误
ua错误
va错误
za错误
ga错误
za错误


Hi Friends,
I have one update to find string content is available in list within list collection,
How to solve this using LINQ, Any one give the better solution in C# or Vb.net

What I have tried:

MainList As List(Of List(Of String)) = Nothing


For Each subList As List(Of String) In MainList
        If subList(1)=Searchvalue Then
           retun true
        EndIf
     Next

Please, take a look at example:

Dim MainList As List(Of List(Of String)) = New List(Of List(Of String)) From _
	{ _
		New List(Of String) From {"a","b","c"}, _
		New List(Of String) From {"d","a","f", "c", "h"}, _
		New List(Of String) From {"i","c"}, _
		New List(Of String) From {"k","d","h"}, _
		New List(Of String) From {"e","o","p"}, _
		New List(Of String) From {"q","f","s", "g", "u"}, _
		New List(Of String) From {"v","z","g","z"} _
	}

Dim SearchValue As String = "a"

'#1
'returns sublists containing serached value
Dim subListContainingSerachedValue = _
	MainList _
	.Where(Function(x) x.Contains(SearchValue)) _
	.ToList()
	

'#2
'returns AnonymousType(Of String, String, Boolean)
Dim OnlySearchedValues = _
	MainList _
	.SelectMany(Function(x) _
			x.Select(Function(y) New With _
				{
					.OrigValue = y, _
					.SearchedValue = SearchValue, _
					.IsOnTheList = y.Any(Function(z) z=SearchValue) _
				}) _
		) _
	.ToList()



Results:

'#1

List<String> {"a", "b", "c"} 
List<String> {"d", "a", "f", "c", "h"} 



'#2

OrigValue SearchedValue IsOnTheList
a a True 
b a False 
c a False 
d a False 
a a True 
f a False 
c a False 
h a False 
i a False 
c a False 
k a False 
d a False 
h a False 
e a False 
o a False 
p a False 
q a False 
f a False 
s a False 
g a False 
u a False 
v a False 
z a False 
g a False 
z a False