C# 如何在C中将列表数据转移到另一个位置#
我创建了一个列表。现在我想知道如何在foreach循环后调用此列表对象。我想打印pass列的全部数据(日期和pass列),并且只想获取(如果pass==True)数据。那么我如何将这些结果发送到另一个.csv文件..我该怎么做。请hep 这是我的清单如下C# 如何在C中将列表数据转移到另一个位置#,c#,list,csv,C#,List,Csv,我创建了一个列表。现在我想知道如何在foreach循环后调用此列表对象。我想打印pass列的全部数据(日期和pass列),并且只想获取(如果pass==True)数据。那么我如何将这些结果发送到另一个.csv文件..我该怎么做。请hep 这是我的清单如下 private void btnFile_Click(object sender, EventArgs e) { List<DrawNew> ObserveData = new List<DrawNew>();
private void btnFile_Click(object sender, EventArgs e)
{
List<DrawNew> ObserveData = new List<DrawNew>(); // List to store all available DrawNew objects from the CSV
// Loops through each lines in the CSV
foreach (string line in System.IO.File.ReadAllLines(outputFilePath.Text).Skip(1)) // .Skip(1) is for skipping header
{
string[] valuesCsvLine = line.Split(',');
DrawNew mngInstance = new DrawNew();
mngInstance.Date = DateTime.ParseExact(valuesCsvLine[0], dateFormatString, CultureInfo.InvariantCulture);
mngInstance.Pass = (valuesCsvLine[1] == "TRUE" ? true : false);
ObserveData.Add(mngInstance);
}
}
您需要执行linq查询来选择所需的数据,例如
var csv = new StringBuilder();
csv.AppendLine("Date,Pass"); // Header, skip if it is not needed
var myQueriedList = ObserveData.Where(p => p.Pass == true);
foreach (var value in myQueriedList )
{
//comma deliminated csv
csv.AppendFormat("{0},{1}", value.Date.ToString(dateFormatString, CultureInfo.InvariantCulture), value.Pass.ToString().ToUpper()).AppendLine();
}
File.WriteAllText(filePath, csv.ToString());
我想这就是你想要的使用这个循环--
foreach(观测数据中的var listOfItem)
{
listOfItem.ColoumData
}您具体在努力解决什么问题。您可以执行
foreach(ObserveData中的var项){/*process item*/}
@PeterB。非常感谢您的帮助。@PeterB,先生,您能告诉我如何将这两列传递给另一个.csv文件吗?我想获得这两列并传递数据,.在这里我写了StringBuilder csvcontent=new StringBuilder();CSV内容。附录行(“日期,通过”);字符串路径=@“D:\C1.csv”;AppendAllText(路径,csvcontent.ToString())代码>这不起作用。您能否回答将所选列数据创建到另一个.csv文件中的问题,谢谢您的帮助。在这里,我想添加这两列(日期和通过)。如果您有时间,请告诉我如何在新的.csv文件中添加两列。谢谢。上面的代码应该将这两列(日期和通过)添加到.csv文件中,myQueriedList
应返回所有列表项,其中pass==true
,在foreach循环中,您只需选择所需的数据(在选择日期和pass并对其进行格式化时,如果答案对您有效,请将其标记为已接受)。
var csv = new StringBuilder();
csv.AppendLine("Date,Pass"); // Header, skip if it is not needed
var myQueriedList = ObserveData.Where(p => p.Pass == true);
foreach (var value in myQueriedList )
{
//comma deliminated csv
csv.AppendFormat("{0},{1}", value.Date.ToString(dateFormatString, CultureInfo.InvariantCulture), value.Pass.ToString().ToUpper()).AppendLine();
}
File.WriteAllText(filePath, csv.ToString());