C#:将列表中的每个n项写入文本文件

时间:2018-03-08 07:15:10

标签: c# file

我列表中有N个项目。

class myClass implements IShowMessage{

  showMessage("your message!");
 @Override
    public Context getContext() {
        return getApplicationContext();
    }
}

现在我需要将每个15000写入单独的单个txt文件中。像

  

表示16000 - > 26000 + 1000,26000 - > 33598的15000 + 11000 - >   15000 + 3598

我有一个类似的程序,

<div id= "genre">
What do you bust a move to?
<br>
<br>
<form name="music" method="post" action="">
<p>
<input type="radio" name="music" value="radio" onClick="changeColour('b')">Blues
<br>
<input type="radio" name="music" value="radio" onClick="changeColour('r')">Rock
<br>
<input type="radio" name="music" value="radio" onClick="changeColour('p')">Pop
<br>
</form>
</div>

window.changeColour = function(value)
{
alert(value);
var color = document.body.style.backgroundColor;
switch(value)
{
    case 'b':
        color = "#FF0000";
    break;
    case 'r':
        color = "#0000FF";
    break;
    case 'p':
        color = "#FF00FF";
    break;
}
document.body.style.backgroundColor = color;
}

编写通用条件以创建每15000个文本文件的任何帮助都会更有帮助。

2 个答案:

答案 0 :(得分:2)

尝试使用Linq

void WriteGroupedItems(List<string> items,int numOfElementsPerGroup)
{
   var index = 0;
   var groupedItems = items.GroupBy(x => index++ / numOfElementsPerGroup);
   foreach(var groupedItem in groupedItems )
   {
      WriteItemsToFile(groupedItem);
   }
}

现在你的WriteItemsToFile可能有类似的逻辑,如下所示:

void WriteItemsToFile(IEnumerable<string> list)
{
   var fileLoc = @"F:\WindowsApplication" + new Guid()+".txt";

   using (var fs = File.Create(fileLoc))
   {
       foreach (var item in list)
       {
          StreamWriter sw = new StreamWriter(fs);
          sw.Write(item);                                     
       }
       jobIdArray.Clear();
       totalCount = 0;
       fs.Close();
   }
}

答案 1 :(得分:1)

您可以尝试以15000块的方式遍历数组,然后将所有非空的元素写入文件。我没有测试它,所以如果它不工作那么只是让我知道,我试图找出一些东西。

var jobIdArray = new List<string>();
jobIdArray.Add(doc.FieldValues(x => x.JobId).FirstOrDefault());

for (int i = 0; i < jobIdArray; i += 15000)
{
    var fileLoc = @"F:\WindowsApplication" + new Guid() + ".txt";
    using (System.IO.StreamWriter sw = new System.IO.StreamWriter(fileLoc))
    {
        for (int x = i; x < 15000; i++)
        {
            if (!String.IsNullOrEmpty(jobIdArray[x]))
            {
                sw.WriteLine(jobIdArray[x]);
            }
        }
    }
}