从文本文件中选择帐户执行操作,然后选择另一个并执行其他操作

时间:2017-05-12 23:43:29

标签: c#

我有一个像这样的帐户的文本文件:

username|password
another|differntpassword
andanther|password123

我正在使用联合来从rss提要获取文章,现在我的问题是,在联合组织foreach中我使用另一个foreach来选择一个帐户,但因为我的帐户foreach在联合组织foreach中,它将执行相同的操作所有帐户的操作,然后下一个联合项目将执行相同的操作,而不是针对不同帐户的不同联合项目......

我的代码:

foreach (SyndicationItem item in feed.Items)
{

}

正如您在我的代码中看到的那样,它会为所有帐户发布相同的联合项目,因此,如果该帐户已完成,我怎样才能从帐户foreach继续,但在下一个联合项目上使用下一个帐户(按线)

我正在尝试为每个帐户完成1个操作,然后一旦我没有其他帐户,请从帐户的开头开始

例如,假设我有10个联合项目和5个帐户:

联合项目:

test
test2
test3
test4
test5
test6
test7
test8
test9
test10

并说我只有5个账户

account1
account2
account3
account4
account5

我想用不同的帐户发布每个联合发布,直到我没有其他帐户,然后从帐户文件的开头开始,如此

test | account1
test2 | account 2
test3 | account 3
test4 | account 4
test5 | account 5
test6 | account 1 // because we have no more accounts, start from the begginng 
test7 | account 2
test8 | account 3
test9 | account 4
test10 | account 5

1 个答案:

答案 0 :(得分:1)

您可以使用Select方法重载,它为投影委托提供项目索引:

var lines = File.ReadAllLines(accounts);
var pairs = feed.Items.Select((item, i) => new { item, line = lines[i % lines.Length] });

foreach(var pair in pairs)
   // use pair.item and pair.line

我还使用modulus运算符在将联合项目索引除以帐户(行数)后得到余数。这给出了应该用于当前联合项目的行数组中的索引。