我有以下List<string>
List<string> RFD = new List<string>(File.ReadAllLines("FDIASNC"));
正在阅读的文件包含:
000821031300000000080
001921031300000000080
004221031300000000080
008121031300000000080
009321031300000000080
011221031300000000080
012221031300000000080
0128200313010000330790000033
207721031300000000080
所以我想要的是找到一个匹配并选择这一行,例如,如果我想读取“0128”的行,它将手动RFD [7],但我想搜索该行并输出该行操纵......任何想法?
谢谢。
修改
我发现它一旦发布,我是一个愚蠢的嘿嘿...谢谢你的答案,在10分钟内我会选择一个正确的:))
答案 0 :(得分:2)
您可以使用LINQ进行搜索:
var line = File.ReadAllLines("FDIASNC")
.FirstOrDefault(line => line.StartWith("0128"));
if (line != null)
{
//Do something with this line
}
自List<string>
返回ReadAllLines
IEnumerable<string>
如果您的文件很大,您可能会考虑使用ReadLines
的延迟执行,而不是将所有行加载到内存中
答案 1 :(得分:1)
RFD.Where(r=>r.Contains("0128")).FirstOrDefault()
答案 2 :(得分:1)
如果您只想选择符合条件的一行,请使用First
或Single
LINQ扩展方法。例如:
string str = RFD.First(line => line.StartWith("0128"));
返回0128200313010000330790000033
字符串
答案 3 :(得分:1)
这样的东西?
using System.Linq;
// later in your program...
foreach (string match in RFD.Where(l => l.StartsWith("0128"))) {
Console.WriteLine(match);
}
答案 4 :(得分:1)
试试这个:
string line = RFD.FirstOrDefault(line => line.StartsWith("0128"));
如果开头没有0128行,则行为空