[英]Select row from List<string> where matches
我有以下List<string>
List<string> RFD = new List<string>(File.ReadAllLines("FDIASNC"));
正在读取的文件具有以下内容:
000821031300000000080
001921031300000000080
004221031300000000080
008121031300000000080
009321031300000000080
011221031300000000080
012221031300000000080
0128200313010000330790000033
207721031300000000080
因此,我想要找到一个匹配项并选择该行,例如,如果我想读取“ 0128”的行,它将手动为RFD [7],但我想搜索该行并输出该行以进行操作。 .. 任何想法?
谢谢。
编辑
我发贴后就发现了,我真傻。谢谢您的回答,我会在10分钟内选择一个作为正确的:)
您可以使用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
延迟执行,而不是将所有行都加载到内存中
RFD.Where(r=>r.Contains("0128")).FirstOrDefault()
如果要选择与您的条件完全匹配的一行,请使用First
或Single
LINQ扩展方法。 例如:
string str = RFD.First(line => line.StartWith("0128"));
返回0128200313010000330790000033
字符串
像这样吗
using System.Linq;
// later in your program...
foreach (string match in RFD.Where(l => l.StartsWith("0128"))) {
Console.WriteLine(match);
}
尝试这个:
string line = RFD.FirstOrDefault(line => line.StartsWith("0128"));
如果开头没有一行0128,则该行为null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.