如何避免在 C# 中多次添加同一行

  • 本文关键字:一行 添加 何避免 c#
  • 更新时间 :
  • 英文 :


我有一个条件,程序从文件"分配.txt"中读取行,然后从最后 6 个下划线获取数据,然后将该数据写入另一个文件line.txt

但是在将数据写入line.txt之前,我必须检查数据是否已存在于line.txt如果是,则跳过或替换现有数据,但line.txt中的每个数据都应该是唯一的,文件assign.txt可以包含多行

foreach (string fileLine in File.ReadAllLines("F:\assign.txt"))
{
string tel_in = "TELENOR_BTS_INCOMING";
string telenor = fileLine.ToUpper();
var delimeter = "_";
if (telenor.Contains(tel_in))
{
var lineParts = fileLine.Split(new[] { delimeter }, StringSplitOptions.None);
if (lineParts.Length > 1) lineParts = lineParts.Skip(1).ToArray();
var data = string.Join(delimeter, lineParts.Skip(lineParts.Length - 7));
lineData.Add(data);
File.WriteAllLines(@"C:UsersAdnan HaiderDesktopline.txt", lineData);
}
else
{
var lineParts = fileLine.Split(new[] { delimeter }, StringSplitOptions.None);
if (lineParts.Length > 1) lineParts = lineParts.Skip(1).ToArray();
var data = string.Join(delimeter, lineParts.Skip(lineParts.Length - 6));
lineData.Add(data);
File.WriteAllLines(@"C:UsersAdnan HaiderDesktopline.txt", lineData);
}   
}

这是行.txt示例输出文件

Mobilink_User_dpo_bahawalpur_0506768768685465367658717_1205 42.out Telenor_bts_outgoing_dpo_chakwal_030617_15201696981.出 Telenor_bts_outgoing_dpo_chakwal_030617_15201696981.出 Telenor_bts_incoming_dpo_chakwal_030617_15201696981.出 Telenor_bts_incoming_dpo_chakwal_030617_15201696981.出 Ufone_User_dpo_chakwal_030617_15235869694.出

这是分配.txt示例

dpo.chakwal63201732033PM_FL_Telenor_bts_outgoing_dpo_chakwal _030617_15201696981。外 dpo.chakwal63201732033PM_FL_Telenor_bts_outgoing_dpo_chakwal _030617_15201696981。外

上行是输出样本line.txt样本,下行是输入行assign.txt我想用line.txt写输出,但首先我必须检查数据是否已存在于line.txt如果是,则跳过或用现有行替换输出,否则将数据写入line.txt

循环有不同的方法。 这是我建议的。 没有尝试/捕获或使用(( {},但你明白了。

string[] m_fileLine = File.ReadAllLines(@"F:\assign.txt");
StreamWriter m_results = new StreamWriter(@"F:\results.txt", true);
string tel_in = "TELENOR_BTS_INCOMING";
for (int i = 0; i < m_fileLine.Length; i++)
{
if (m_fileLine[i].ToUpper().Contains(tel_in))
{
// some logic here...
// then write here...
m_results.WriteLine(m_fileLine[i].ToString());
m_results.Flush();
}
else
{
// else logic and write here...
}
}

最新更新