首页 > 解决方案 > 比较 List<> 中的两个对象并为它们分配新值

问题描述

如何比较列表中的两个对象?该列表包含具有两个属性编号和描述的对象。数字如CC2、NS1,描述为Abcd、acd、……</p>

名单成员:CC1 Abcd、NU15 Abcd、CC2 Acd、NS1 Abd、CC21 Abd

string start = "NU15 Abcd";
string end = "NS1 Abd";

string startletters = string.Empty;
string startnumbers = string.Empty;

string endletters = string.Empty;
string endnumbers = string.Empty;

foreach (char c in start)
{
    if (Char.IsLetter(c))
    {
        startletters += c;
    }
    if (Char.IsNumber(c))
    {
        startnumbers += c;
    }
}
foreach (char c in end)
{
    if (Char.IsLetter(c))
    {
        endletters += c;
    }
    if (Char.IsNumber(c))
    {
        endnumbers += c;
    }
}
for (int i = 0; i < Program.file.Count; i++)
{
    if (startname == Program.file[i].Desc && start != Program.file[i].Number)
    { 
        start = Program.file[i].Number;      
    }
}

我想要做的是检查 start 是否有另一个以 NS 开头的数字,与 end 类似,以检查 Abd 是否有另一个数字,以便两者都匹配(两者都以 CC 开头)。请记住 start 和 end 的值是这种格式但与 i 分配的值不同,因为它们是输入的,上面的值仅供参考。所以结果将是

start = "CC1 Abcd"; end = "CC21 Abd";

标签: c#

解决方案


正如我从你的问题中了解到的:

//This will get you the first two characters of the string
string subS = start.Substring(0,2);
string subE = end.Substring(0,2);

//Do the comparison
if (subS == subE)
{
//your logic
}
else 
{
//another logic
}

推荐阅读