小编evi*_*shi的帖子

C#XML LINQ查询到LIST <>

我正在尝试将XML文档转换为具有预定义类的List <>

我的xml数据集TestData.xml

<Objects>
    <Object ID="1">
        <ItemOne>"Hickory"</ItemOne>
        <ItemTwo>"Dickory"</ItemTwo>
        <ItemThree>"Dock"</ItemThree>
    </Object>

    <Object ID="2">
        <ItemOne>"The"</ItemOne>
        <ItemTwo>"Mouse"</ItemTwo>
        <ItemThree>"Went"</ItemThree>
    </Object>
</Objects>
Run Code Online (Sandbox Code Playgroud)

主程序

class Program
{
    static void Main(string[] args)
    {

        XElement TestData = XElement.Load("TestData.xml");

       List<Test> myTest = new List<Test>(from d in TestData.Descendants("Objects")
                                     select new Test(
                                         d.Element("ItemOne").Value.ToString(),
                                         d.Element("ItemTwo").Value.ToString(),
                                         d.Element("ItemThree").Value.ToString()));

        myTest.ForEach(i => Console.WriteLine("{0} {1} {2}", i.itemOne, i.itemTwo, i.itemThree));

        Console.ReadLine();
    }


}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将数据形成的类

class Test
{
    public string itemOne { get; set; }
    public string itemTwo { get; set; }
    public string itemThree { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# xml linq list

2
推荐指数
1
解决办法
5108
查看次数

调用Asyc Task <T>方法

我现在正在学习异步(UWP)方法,并且不能完全理解语法.所有示例都有很多事情,而不仅仅是Task异步调用,并没有真正显示它们是如何启动的.我不明白的主要问题是如何从非异步方法启动任务.每当我尝试调用任务时,它都希望我将该方法转换为异步方法.反过来又希望我将任何调用该方法的方法转为异步.那你怎么开始呢?

我正在尝试的当前用例是从UWP localstorage中检索一个充满用户名和ID的JSON文件,现在UWP中的这是一个异步调用.我很确定我的方法是正确的但是我在调​​用它时遇到了问题.目前我在它支持的页面后面的代码中调用方法,其中实际方法当前驻留在User Class中.

这是我的代码:

public async Task<List<User>> getUsers()
    {
        List<User> u = new List<User>();
        StorageFolder folder = ApplicationData.Current.LocalFolder;
        StorageFile file = await folder.GetFileAsync("LocalUsers.txt");
        string Json = await FileIO.ReadTextAsync(file);
        List<User> existingUsers = new List<User>();
        existingUsers = JsonConvert.DeserializeObject<List<User>>(Json);
        return existingUsers;
    }
Run Code Online (Sandbox Code Playgroud)

这就是我试图从后面的代码中调用方法的方法

    List<User> users = await User.getUsers();
Run Code Online (Sandbox Code Playgroud)

我已经尝试过像这样运行任务,但我不认为我的sytax是正确的

    Task t = new Task(User.getUsers());
Run Code Online (Sandbox Code Playgroud)

任何援助都会得到很大的帮助.谢谢.

c# task async-await win-universal-app windows-10-universal

2
推荐指数
1
解决办法
154
查看次数

C#接口不允许成员类满足要求

对不起,如果标题不是很具描述性.我不知道怎么形容这个.

首先,我创建了一个这样的界面:

public interface IUser {}
Run Code Online (Sandbox Code Playgroud)

然后在几个类中实现它,如下所示:

public class Student : IUser {}

public class Teacher : IUser {}
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个需要第一个接口的接口

public class IUsers
{
    List<IUser> Users {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个使用第二个接口的类,但是使用了第一个接口的一个成员来填充合同.

public class Students : IUsers 
{
    List<Student> Users {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

问题是我想要将列表限制为仅仅一个接口实现的最后一个,但仍需要维护接口以实现数据兼容性.当我这样做时,我得到一个错误,说我没有实现接口.我认为,既然学生已经实现了界面,它就可以填补这个义务,但似乎并没有.这是正确的还是我做错了什么

c# interface

2
推荐指数
1
解决办法
66
查看次数