2014-04-28 245 views
0

我有一个winform C#sql应用程序,其中我检索数据和存储在字符串中。像这样。比较一个字符串与多个其他字符串

string a1 = Convert.ToString(srj[@"Sub_1"]); 
        string a2 = Convert.ToString(srj[@"Sub_2"]); 
        string a3 = Convert.ToString(srj[@"Sub_3"]); 
        string a4 = Convert.ToString(srj[@"Sub_4"]); 
        string a5 = Convert.ToString(srj[@"Sub_5"]); 
        string a6 = Convert.ToString(srj[@"Sub_6"]); 
        string a7 = Convert.ToString(srj[@"Sub_7"]); 
        string a8 = Convert.ToString(srj[@"Sub_8"]); 
        string a9 = Convert.ToString(srj[@"Sub_9"]); 
        string a10 = Convert.ToString(srj[@"Sub_10"]); 
        string a11 = Convert.ToString(srj[@"Sub_11"]); 
        string a12 = Convert.ToString(srj[@"Sub_12"]); 

这里我检索12个值。现在我想用a1,a2 ... a29等字符串比较每个值。如果两个字符串都匹配相应的复选框且必须检查该字符串。 但我看到它的方式,我必须比较30个字符串与第一个值,然后30个字符串与第二个值,等等。

有没有办法使用其他方法做到这一点?

+0

如果您必须将所有字符串与eachother进行比较,则没有其他方法。 –

+0

一个forloop和使用'Sub + i.ToString()'想到...但不是所有的转换为字符串,你不能比较他们的真实类型? – Sayse

+0

@ChristopheDeTroyer:所以我必须为460条件编写代码? –

回答

0

OK - 试试这个

String[] myList1 = new String[] {"a","ab", "ba", "cc", "ab"}; 
String[] myList2 = new String[] {"a","abc", "ba", "c2c", "ab1", "cccc", "ba"}; 

var keyResult = myList1.Where(x=>myList2.Contains(x)).ToArray(); 

给出包含 “一个” 和 “八” 的数组。这两个数组的长度不必相同。它还将重复项目作为单个项目进行处理。

然后还有一组交集方法。

var keyResult2 = myList1.Intersect(myList2).ToArray(); 
相关问题