我正試圖在文件中查找狀態的子字符串。我打開文件並一次加載每行一個字符串。然後我想檢查每個字符串是否包含我的子字符串中的某個狀態。它不按預期工作,因爲它一直返回「無法找到子字符串」,即使我知道狀態在字符串中。我究竟做錯了什麼?如何使用.Contains在LINQ中使用C#
編輯:我知道現在是什麼錯誤,這條線是完全錯誤的:
if (lines.Any(stringToCheck.Contains))
它應該是這樣的:
if (stringToCheck.Any(s.Contains))
感謝您的幫助球員。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main (string[] args)
{
string[] stringToCheck = {"Alabama","Alaska","Arizona","Arkansas","California","Colorado"};
string[] lines = File.ReadAllLines(@"C:\C# Project\sampledata.dat");
foreach (string s in lines)
{
if (lines.Any(stringToCheck.Contains))
{
Console.WriteLine("Found substring");
Console.WriteLine(s);
Console.ReadLine();
}
else
Console.WriteLine("Could not find substring");
Console.WriteLine(s);
Console.ReadLine() ;
}
}
}
}
這條線本身是錯誤的。 lines.Any(stringToCheck.Contains) 你正在遍歷所有行,雖然你在一個循環也stringReCheck是多個值 - 包含可能會失敗,以及 – Gururaj
首先看看'stringA.Contains( stringB)'。它有什麼作用?然後 - 讓我們忘記一下string.Contains - Linq的「list.Any(someCriteria)」是做什麼的? – elgonzo
@Gururaj你應該發佈,作爲一個答案,而不是評論。 –