Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中将列表数据转移到另一个位置#_C#_List_Csv - Fatal编程技术网

C# 如何在C中将列表数据转移到另一个位置#

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>();

我创建了一个列表。现在我想知道如何在foreach循环后调用此列表对象。我想打印pass列的全部数据(日期和pass列),并且只想获取(如果pass==True)数据。那么我如何将这些结果发送到另一个.csv文件..我该怎么做。请hep

这是我的清单如下

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());