为什么我无法打印此列表?

时间:2012-12-24 09:53:30

标签: c# web-services

这是我第一次处理网络服务。我是一名新的C#开发人员,我正在尝试从Web服务中检索用户信息。我能够连接到Web服务并检索信息。现在,我正在尝试打印公司中不同级别的用户列表。问题我得到这种错误,我不知道: foreach语句无法对“UserLib.UserDate”类型的变量进行操作,因为“UserLib.UserData”不包含“GetEnumerator”的公共定义。

我有一个名为UserLib的类库项目,我有两个类。

UserData类代码:

namespace UserLib
{
    public class UserData
    {
        public string username { get; set; }
        public string fullName { get; set; }
        public string email { get; set; }
        public string jobTitle { get; set; }
        public string levelCode { get; set; }
    }
}

GetUserData类代码:

namespace UserLib
{
    public class GetUserData
    {
        public UserData getUserData(string login)
        {

            var dat = new UserData //UserData object
            {
                username = response.Username,
                fullName = response.FullName,
                email = response.Email,
                jobTitle = response.Title,
                levelCode = levelCode,
                           };
            return dat;
        }
    }
}

程序类代码:

class Program
    {
        static void Main(string[] args)
        {
                        Console.WriteLine("Please enter the username: ");
                        Console.WriteLine(" ");
                        Console.Write("Username: ");
                        var login = Console.ReadLine();

                            var getUser = new GetUserData();
                            var dat = getUser.getUserData(login);  // <== class library call

                            Console.WriteLine("Username:   " + dat.username);
                            Console.WriteLine("Full Name:   " + dat.fullName);
                            Console.WriteLine("Email:   " + dat.email);
                            Console.WriteLine("Job Title:   " + dat.jobTitle);
                            Console.WriteLine("Level Code:   " + dat.levelCode);
                            Console.WriteLine("------------------------");
                            printAll(login);
}

您能否告诉我如何解决此问题并打印此用户列表?

2 个答案:

答案 0 :(得分:2)

UserData不是IEnumerable,而是List<UserData>,它只是一个对象。 您需要一个返回getUsersData

的方法IEnumerable<UserData>

嗯..你的switch看起来多余。

第一个case级联到第二个case ..第二个case与第三个output.Add(users.userName);相同 那么为什么不只是{{1}}

假设真实代码是您粘贴的内容。

答案 1 :(得分:1)

您的getUserData方法未返回用户列表,它返回单个UserData(一个用户的详细信息),因此您不能期望迭代此返回值,就好像这是一个集合。

另外请注意,在UserData上使用PascalCase作为方法名称和属性名称。