我有一个dictionary<String,Object>,我想把它转换为a List<Customer>
有一个聪明的方法吗?任何例子?谢谢
EDITED
很抱歉没有正确解释.鉴于以下原因,为什么我的结果为0?请注意我试图模拟一个现场情况,第一个键没有意义,并希望排除所以只有我应该得到的客户.为什么不起作用?谢谢你的任何建议
class Program
{
static void Main(string[] args)
{
List<Customer> oldCustomerList = new List<Customer>
{
new Customer {Name = "Jo1", Surname = "Bloggs1"},
new Customer {Name = "Jo2", Surname = "Bloggs2"},
new Customer {Name = "Jo3", Surname = "Bloggs3"}
};
Dictionary<string,object>mydictionaryList=new Dictionary<string, object>
{
{"SillyKey", "Silly Value"},
{"CustomerKey", oldCustomerList}
};
List<Customer> newCustomerList = mydictionaryList.OfType<Customer>().ToList();
newCustomerList.ForEach(i=>Console.WriteLine("{0} {1}", i.Name, i.Surname));
Console.Read();
}
}
public class Customer
{
public string Name { get; set; }
public string …Run Code Online (Sandbox Code Playgroud) 我已经看到很多方法使用泛型将字符串转换为枚举,但找不到使用泛型将枚举转换为字符串的简洁方法.
我的意思是传递枚举和值并返回枚举的映射名称.
有什么建议
想知道这是否是用事件测试结果的正确方法.
我正在开发一个应用程序,当Save正在进行/完成时它会触发事件.
为了测试它,我想出了以下内容(制作场景).我想知道这是不是你这样做的方式:
[Test]
public void Save_WhenCalled_IsSuccessfull()
{
//Arrange
var customerService= new CustomerService();
customerService.OnSaved += (sender, args) =>
{
Assert.IsTrue(args.HasSaved);
};
customerService.Save(new Customer {Id=1,Name="Jo"});
}
Run Code Online (Sandbox Code Playgroud)
我不喜欢的是,如果你明白我的意思,我之前就断言了.
我希望断言在视觉上最后.顺便说一下,上面的工作很好,但不太开心.
有什么建议?
已经决定使用moq等编写一些单元测试.它有很多遗留代码c#
(这是我无法控制的,所以不能回答这个问题)
现在,如果您不想访问数据库但间接仍然访问数据库,您如何应对这种情况?
这是我把它放在一起的东西,它不是真正的代码,而是给你一个想法.
你会如何处理这种情况?
基本上在模拟接口上调用一个方法仍然会调用dal调用,因为在该方法中有其他方法不属于该接口的一部分?希望它清楚
[TestFixture]
public class Can_Test_this_legacy_code
{
[Test]
public void Should_be_able_to_mock_login()
{
var mock = new Mock<ILoginDal>();
User user;
var userName = "Jo";
var password = "password";
mock.Setup(x => x.login(It.IsAny<string>(), It.IsAny<string>(),out user));
var bizLogin = new BizLogin(mock.Object);
bizLogin.Login(userName, password, out user);
}
}
public class BizLogin
{
private readonly ILoginDal _login;
public BizLogin(ILoginDal login)
{
_login = login;
}
public void Login(string userName, string password, out User user)
{
//Even if I dont want to this …Run Code Online (Sandbox Code Playgroud) sql方面有点生锈,因为我有一段时间没碰过
我使用该图添加了外键约束,并明确地说存在fk关系。
但是,在编写表脚本或查看SQL Server资源管理器中的键时,我看不到灰色键。
我想念什么吗?不知道我做的正确。
如何以编程方式在2个表之间创建一个表?它是否应该出现在资源管理器中的按键下?
非常感谢您的任何投入
嗨,您是否想知道是否有一种模式可以对发布者订阅者模式进行单元测试?
有什么例子或建议吗?
谢谢
在.net 2.0项目上工作,没有linq,也无法添加任何外部库.
构建我在实际项目中需要做的一个小例子.
如何在不使用linq的情况下按"Employee.Category"进行分组.
对于每个小组,我需要对此做些什么.
你如何在.net 2.0中分组?
class Program
{
static void Main(string[] args)
{
List<Employee>employees=new List<Employee>();
Employee employee = new Employee();
employee.Id = 1;
employee.Category = "Management";
Employee employee2 = new Employee();
employee.Id = 2;
employee.Category = "Management";
Employee employee3 = new Employee();
employee.Id = 3;
employee.Category = "Director";
Employee employee4 = new Employee();
employee.Id = 4;
employee.Category = "Worker";
Employee employee5= new Employee();
employee.Id = 5;
employee.Category = "Director";
Employee employee6 = new Employee();
employee.Id = 6;
employee.Category …Run Code Online (Sandbox Code Playgroud) 假设我有一个字符串分隔符,例如"〜#",并且有一个像"leftSide~#righside"这样的字符串你如何在没有分隔符的情况下得到左侧和右侧?
string myLeft=?;
string myRight=?
Run Code Online (Sandbox Code Playgroud)
你怎么做呢?谢谢
在一个项目中工作,他们有很多枚举和多个dll中的大量重复对象.一团糟但让我们继续前进.
我有这个扩展方法,当将枚举转换为Enum时,它在enum中具有相同的位置但是如果名称相同但枚举的位置不同则失败
如何改进我的代码,以便根据名称匹配获得正确的枚举,无论枚举位于何处
谢谢
[TestClass]
public class UnitTest1
{
[TestMethod]
public void ToEnum_convert_returnsCorrectEnum()
{
const CategoryA categoryALawyer = CategoryA.Lawyer;
var result = categoryALawyer.ToEnum<CategoryB>();
Assert.AreEqual(CategoryA.Lawyer.ToString(),result.ToString());
}
}
namespace Utilities
{
public enum CategoryA
{
Lawyer,
Developer,
Manager,
Employee,
Director,
}
public enum CategoryB
{
Director,
Manager,
Developer,
Employee,
Lawyer
}
public static class EnumExtensions
{
public static T ToEnum<T>(this Enum value)
{
return (T)Enum.ToObject(typeof(T), value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有些dll我无法控制,所以我不能改变枚举顺序