繁体   English   中英

从列表中选择行 <string> 匹配的地方

[英]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()

如果要选择与您的条件完全匹配的一行,请使用FirstSingle 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM