C# 迭代工作列表以打印职位、姓名、雇主、职位和核心能力

C# 迭代工作列表以打印职位、姓名、雇主、职位和核心能力,c#,csv,dictionary,C#,Csv,Dictionary,我在Program.cs文件中有一个方法,我正试图实现它。当该方法迭代作业列表(其中每个作业都是一个字典)时,它应该打印: ***** name: Data Scientist / Business Intelligence employer: Bull Moose Industries location: Saint Louis position type: Sr. IT Analyst (Data/BI) core competency: Statistical Analysis *

我在
Program.cs
文件中有一个方法,我正试图实现它。当该方法迭代作业列表(其中每个作业都是一个字典)时,它应该打印:

*****
name: Data Scientist / Business Intelligence
employer: Bull Moose Industries
location: Saint Louis
position type: Sr. IT Analyst (Data/BI)    
core competency: Statistical Analysis
***** 
文件
job_data.csv
包含我需要的所有职务信息:

name,employer,location,position type,core competency
Junior Data Analyst,Lockerdome,Saint Louis,Data Scientist / Business Intelligence,Statistical Analysis
Project Coordinator Support,Maritz,Saint Louis,Technical Assistant / User Support,Non-coding
Junior Web Developer,Cozy,Portland,Web - Front End,Ruby
Junior Developer 3,LiveAnswer,South Florida,Web - Full Stack,Java
Full Stack Engineer,Splitwise,Rhode Island,Web - Full Stack,Ruby
Customer Experience,Splitwise,Rhode Island,Project Manager / Analyst,Non-coding
IT Support Specialist,Viamontech,South Florida,Technical Assistant / User Support,Non-coding
C#/.net Developer ,Hunter Engineering,Saint Louis,Software / Enterprise Developer,.Net
Junior Developer,"TruckMovers.com, Inc.",Kansas City,Web - Full Stack,Python
…等等(总共有99行)。我需要做的是编写
PrintJobs
方法,使其进入
job\u data.csv
并打印出标签:

name: 
employer:
location:
position type:
core competency: 
然后是每行中相应的项目。例如,打印行10将如下所示:

*****
name: Junior Developer
employer: "TruckMovers.com, Inc."
location: Kansas City
positon type: Web - Full Stack
core competency: Python
*****
我该怎么做?该方法的起始代码为:

private static void PrintJobs(List<Dictionary<string, string>> someJobs)
{
        Console.WriteLine("printJobs is not implemented yet");
}
我尝试了这个,但仍然得到了这样的信息:

printJobs is not implemented yet        
C#完全初学者。
链接到完整代码:


我还没有看到您的完整代码,但据我所知,您想打印您的csv数据,正如您在下一部分中提到的

*****
name: Junior Developer
employer: "TruckMovers.com, Inc."
location: Kansas City
positon type: Web - Full Stack
core competency: Python
*****
通过使用
LINQ
可以很容易地实现这一点,方法如下:

  var result = File.ReadAllLines(csvPath)
               .Skip(1)//skipping first line because they are headers
               .Select(x => x.Split(','))
               .Select(x => new
               {
                   Name = x[0],
                   employer = x[1],
                   location = x[2],
                   position_type = x[3],
                   core_competency = x[4]
               });
        foreach (var item in result)
        {
            Console.WriteLine("Name: " + item.Name+"\n");
            //...
            Console.WriteLine("Position Type: " + item.position_type);
        }
代码将按您的需要打印数据。如果你还需要别的东西,请告诉我


这是一段经过测试的代码,可以正常工作。

我最初认为需要做的工作已经在Program.cs的main方法中为我完成了。至于我为什么仍然收到这样的消息:
printJobs尚未实现
,如果发现任何构建错误,C#将编译并运行代码的最后一个工作版本。因为我的代码有几个构建错误,所以在我进行任何更改之前,它运行的是最新版本。在保存并再次运行项目之前,我还需要重新启动模块(x-out)

至于实现PrintJobs,我需要创建一个嵌套的foreach循环。第一个foreach进入
字典
中的字符串,该字符串位于列表
someJobs
中,第二个foreach进入字符串
,该字符串存储在
中。程序自动知道
someJobs
是一个列表,因为它是在它前面声明的

private static void PrintJobs(List<Dictionary<string, string>> someJobs)
    {
        foreach(Dictionary<string,string> item in someJobs)
        {
            foreach (KeyValuePair<string, string> pair in item) {
                Console.WriteLine(string.Format("{0} {1}", pair.Key, pair.Value));
            }
        }

        //Console.WriteLine("printJobs is not implemented yet");
    }
private static void打印作业(列出一些作业)
{
foreach(某些作业中的字典项)
{
foreach(项中的KeyValuePair对){
WriteLine(string.Format(“{0}{1}”,pair.Key,pair.Value));
}
}
//Console.WriteLine(“尚未实现打印作业”);
}

No您在JobData.cs中为我做的事情已经完成了。我所需要做的就是创建一个嵌套循环,在字典中循环并输出结果。这就是我不知道该怎么做的。我猜它应该是这样的:for(Dictionary.Keys中的int项){Console.WriteLine(“columnChoice”+“columnItem”);顺便说一下,它需要是一个嵌套的for循环,所以类似于:for(Dictionary in someJobs){for(I in someJobs){Console.WriteLine(columnChoice+字符串值);}我需要定义字典的名称和类型
private static void PrintJobs(List<Dictionary<string, string>> someJobs)
    {
        foreach(Dictionary<string,string> item in someJobs)
        {
            foreach (KeyValuePair<string, string> pair in item) {
                Console.WriteLine(string.Format("{0} {1}", pair.Key, pair.Value));
            }
        }

        //Console.WriteLine("printJobs is not implemented yet");
    }