-1

複数の行があり、各行にタグがあり、次のlinqを実装したばかりのコントロールを反復処理しています。次のクエリを単一のクエリに最適化できますか?

 Dim xCheckTag As String = If((From xTag As Row In Sheet1.Rows Where xTag.Tag = "FtpHeader").ToArray.Length > 0, "FtpHeader", _
                            If((From xTag As Row In Sheet1.Rows Where xTag.Tag = "MailHeader").ToArray.Length > 0, "MailHeader", _
                            If((From xTag As Row In Sheet1.Rows Where xTag.Tag = "GoogleHeader").ToArray.Length > 0, "GoogleHeader", _
                            If((From xTag As Row In Sheet1.Rows Where xTag.Tag = "NetworkHeader").ToArray.Length > 0, "NetworkHeader", String.Empty))))
4

2 に答える 2

0

FirstOrDefaultと組み合わせて使用Any​​:

Dim tags = {"FtpHeader","MailHeader","GoogleHeader","NetworkHeader"}
Dim xCheckTag = If(tags.FirstOrDefault(Function(tag) Sheet1.Rows.OfType(Of Row).Any(Function(xTag) xTag.Tag = tag)), String.Empty)
于 2013-08-29T10:14:41.720 に答える