我在寻找最有效的解决方案时遇到了一个小问题。我有一个学生编号,例如 10 。其中一些 id 彼此是相对的(兄弟姐妹)。对于那些是兄弟姐妹的人来说,只留下一个来识别,不管哪个,第一个就可以了。
例如,学生证
原来的
1、2、3、4、5、6、7、8、9、10
1, 2, 3
一个家庭兄弟姐妹在哪里,8, 9
另一个在哪里。最后我应该有:
预期的
1、4、5、6、7、8、10 _ _ _
我是通过循环来做的。
更新:
我只是停下来实施它,因为它变得越来越大。这是我脑海中的大图。我只是逐行收集每个给定 id 的所有兄弟 id,然后我将逐个迭代。但就像我说的那样,这是在浪费时间。
代码(概念上)
static string Trimsiblings(string ppl) { string[] pids=ppl.Split(','); Stack<string> personid=new Stack<string>(); foreach(string pid in pids) { // access database and check for all sibling // is for each individual pid // such as in example above // row 1: field 1=1, field2=2, field3=3 // row 2: field 1=8, field2=9 query = Select..where ..id = pid; // this line is pesudo code for(int i=0; i<query.Length; i++) { foreach(string pid in pids) { if(query.field1==pid) { personid.Push(pid);
} } } } }