【发布时间】:2013-03-07 15:59:26
【问题描述】:
我在寻找最有效的解决方案方面遇到了一个小问题。我有一个 student ids 的数字,例如 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);} } } } }
【问题讨论】:
-
你只有 studentId 属性吗?
-
你怎么知道哪些是兄弟姐妹。此外,是否所有相关项目都分组在一起?或者说,1、2 和 5 可以是兄弟姐妹,而 3 和 4 不相关?
-
哦,是的,可能有任何情况,我只是让问题更简单