我有以下两个类:
class MyData {
public List<string> PropertyList { get; private set;}
public string PropertyB { get; set; }
public string PropertyC { get; set; }
}
class MyData2 {
public string PropertyA { get; set;}
public string PropertyB { get; set; }
public string PropertyC { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我有一个MyClass实例,我需要将它转换为MyData2列表.我可以通过循环MyData.PropertyList并缓存其他属性值并将它们插入MyData2列表来实现,如下所示:
string propertyB = myData.PropertyB;
string propertyC = myData.PropertyC;
List<MyData2> myData2List = new List<MyData>();
foreach(string item in myData.PropertyList)
{
myData2List.Add(new myData2() { item, propertyB, propertyC });
}
Run Code Online (Sandbox Code Playgroud)
不确定是否可以使用LINQ或Lambda表达式的.Net 3.5功能完成此操作?
我有两个系列,每个系列包含大约40,000个项目.
列表2中的元素通过外键链接到列表1的元素.
对于列表一的每个元素,我想在列表二中找到相应的元素.
像这样的东西:
foreach(var item in list1)
{
var match = list2.Where(child => child.ID == item.ChildID).FirstOrDefault();
item.Child = match;
}
Run Code Online (Sandbox Code Playgroud)
这有效,但它很慢.
现在,list1和list2都是按照这些键从数据库中排序的.因此list1按ChildID排序,list2按ID排序(相同值).
我认为二进制搜索会大大提高速度,但我在某处读到了Linq会在Where子句中为列表选择最合适的策略.也许我需要明确地转换为排序列表?或者我可能需要使用比较器实现自定义二进制搜索算法?
任何见解都表示赞赏.
谢谢.
例如:
m_lottTorqueTools = (From t In m_lottTorqueTools _
Where Not t.SlotNumber = toolTuple.SlotNumber _
And Not t.StationIndex = toolTuple.StationIndex).ToList
Run Code Online (Sandbox Code Playgroud)
这里出现了什么算法?在后台是否有嵌套的for循环?它是否为这些字段构建哈希表?我很好奇.
我必须从逗号分隔的字符串中获取不同的值.输入字符串可以包含重复的值.这是自动完成功能.例如:
我有一个字符串:shop,dell,image,just,just do,file,just,do,shop .... 我的要求是当我传递' jus '时,输出字符串应该是:" just,just do " .