我尝试减去2个列表,如下面的代码,assignUsers有3个记录,assignedUsers并有2行.之后Except方法我仍然得到3行,但我应该得到1记录,因为两行中assignedUsers类似于assignUsers
var users = accountApp.GetUsersByAccountId(context.GetUserData().AccountId);
List<AssignUserViewModel> assignUsers = Mapper.Map<List<AssignUserViewModel>>(users).ToList();
var mailUsers = mailApp.GetMailAssignedByMailId(id).Select(m => new { m.UserId, m.User.Name }).ToList();
List<AssignUserViewModel> assignedUsers = mailUsers.Select(Mapper.DynamicMap<AssignUserViewModel>).ToList();
assignUsers = assignUsers.Except(assignedUsers).ToList();
Run Code Online (Sandbox Code Playgroud) 我有这些POCO课程:
public class Task
{
public int TaskId { get; set; }
public int ProjectId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime StartDate { get; set; }
public DateTime? DueDate { get; set; }
public int UserId { get; set; }
public string Tags { get; set; }
public string FileName { get; set; }
public virtual Project Project { get; set; }
public virtual List<TaskAssigned> TaskAssigns …Run Code Online (Sandbox Code Playgroud) 我只是写下面的代码,我希望在C#中有3个带异步功能的文本文件,但我没有看到任何内容:
private async void Form1_Load(object sender, EventArgs e)
{
Task<int> file1 = test();
Task<int> file2 = test();
Task<int> file3 = test();
int output1 = await file1;
int output2 = await file2;
int output3 = await file3;
}
async Task<int> test()
{
return await Task.Run(() =>
{
string content = "";
for (int i = 0; i < 100000; i++)
{
content += i.ToString();
}
System.IO.File.WriteAllText(string.Format(@"c:\test\{0}.txt", new Random().Next(1, 5000)), content);
return 1;
});
}
Run Code Online (Sandbox Code Playgroud) 我有这些课程:
public class Project
{
public int ProjectId { get; set; }
public int AccountId { get; set; }
public int UserId { get; set; }
public string Name { get; set; }
public DateTime StartDate { get; set; }
public string Description { get; set; }
public string Tags { get; set; }
public virtual List<Task> Tasks { get; set; }
}
public class Task
{
public int TaskId { get; set; }
public int ProjectId { get; set; …Run Code Online (Sandbox Code Playgroud) 假设我们有一个包含156个项目的列表,我们需要在50个批次中使用take和skip方法,我已经完成了以下代码,但不知道如何跳过以前的项目,如果其余代码是正确的:
var mailAccounts = mailRepo.GetAllMailAccounts();
int total = mailAccounts.Count;
int batch = 50;
int batchNumbers = total / batch;
for (int i = 0; i < batchNumbers; i++)
{
mailAccounts.Skip(Previous Items).Take(batch);
await FetchEmails(mailAccounts);
}
Run Code Online (Sandbox Code Playgroud)