我正在使用c#编写创建文本文件。我试图在文本文件中的一行上写2条记录。我的数据源来自存储过程的结果集。
这是我的代码。目前我只是按记录写作。我想在一行中将2条记录写入文本文件。
示例:
记录1记录6
记录2记录7
记录3记录8
记录4记录9
记录5记录10
记录11记录16
记录12记录17
记录13记录18
记录14记录19
记录15记录20
public bool SalesPriceIndexProcess()
{
int page = 1, count = 1;
FileStream fs = new FileStream(Properties.Settings.Default.Path + SalesPriceDirectoryReportName, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
foreach (ManhattanLUSESalesPriceIndex_Result s in _db.ManhattanLUSESalesPriceIndex())
{
if (count == 1)
{
SalesPriceHeaderWrite(s.BldgClassCd, ref fs, ref sw);
}
string saleDate = s.SaleDt.ToString();
sw.WriteLine("{0,13:C0}{1,-5} {2,-4} {3,5} {4,3} {5,15:C0}{6} {7,-8} {8,4}"
, s.SalePriceAmt, s.MultiSplitCd
, Convert.ToInt16(s.StoriesNbr) + s.LandUseMajorCd
, (s.LegalBlkId + "-"), s.LegalLot
, s.TransAssdTotalAmt, s.BldgClassCd.PadRight(2)
, (saleDate.Length > 6 ? saleDate.Substring(4, 2) + "/" + saleDate.Substring(6, 2) + "/" + saleDate.Substring(2, 2) : "")
, page
);
PclIdPageIndexDict.Add(s.PclId, page);
if (count % 5 == 0)
{
sw.WriteLine(SalesPriceLineBreak);
}
if (count % 145 == 0)
{
sw.WriteLine(SalesPricePageBreak);
}
count++; //increment by 1
page = count % 145;
}
return true;
答案 0 :(得分:0)
您需要将最后5行存储在队列中。如果你写出你的行,你需要说出如下内容:
while(!eof) {
for (int i=0; i<5; i++) {
queue.enqueue(readline());
}
for (int i=0; i<5; i++) {
write(queue.dequeue());
write(readline());
write('\n');
}
}
您的问题是关于C#语法还是执行行对的逻辑?
答案 1 :(得分:0)
if(_db.ManhattanLUSESalesPriceIndex().Count() < 5)
{
// throw
}
else
{
var collectionStore = _db.ManhattanLUSESalesPriceIndex().ToList();
for(int i = 5; i < collectionStore.Count(); i++)
{
var recordN = collectionStore[i-5];
// do whatever outputting you want
var recordNPlusFive = collectionStore[i];
// do whatever outputting you want
}
}
}
已编辑的代码