2012-12-05 39 views
0

我已经创建了解析一些文本文件,并翻出和排序信息到表搜索行,并将它们与

这里申请其他行是一个示例

NODE DSP Name BUS IDENT STATION   REF1     REF2 

nnn1_1 S|xxxx|A1 1  1  1    S|yyyyyyyyyy|A1  S|zzzzzzz|A1 

mmm1_1 R|xxxx|A1 1  1  1    R|yyyyyyyyyy|A1  R|zzzzzzz|A1 

xxx1_2 R|xxxx|A1 1  1  1    R|yyyyyyyyyy|A1  R|zzzzzzz|A1 

yyy1_1 R|xxxx|A1 1  1  1    R|yyyyyyyyyy|A1  R|zzzzzzz|A1 

我需要检查3件东西

  1. 如果在DSP名称中有一个S|它至少有一个对应的R |
  2. 对应的R|具有相同BUSIDENTSTATION
  3. REF1REF2比赛名称

我可以排序的蛮力通过这个在时间和建筑物在表中一行拉着我的路所有的列表(S|),然后一旦有这个列表搜索相应的(R|)... 我已经有一个数据表中的这些在一个点上,以及一个CSV文件

有没有更简单的方法来做到这一点?像LINQ一样?

+1

我不知道你的列边界在哪里。 CAn您请格式化您的问题?另外,你说它在一张桌子里......'DataTable'?在数据库中? Waht类型的数据库?或者你的意思是一个HTML表格? –

回答

0

这里的东西,让你开始:

var dspStartsWithR = From row in myDataTable.Rows 
        Where (string)row("DSP Name").StartsWith("R|") 
var dspStartsWithS = From row in myDataTable.Rows 
        Where (string)row("DSP Name").StartsWith("S|") 

一旦你得到你的结果你将要做的子串的某种组合来剔除你不需要的人物,做的比较等。如果代码不太对,我的C#很生疏。

+0

谢谢我只需要开始使用某些东西,这看起来会帮助我克服分析瘫痪问题。我已经编程了一段时间,但处理大量数据对我来说是新事物。我赞赏 – boiler1974

+0

这个作品'var queryDspStartsWithR = from dt.AsEnumerable() 其中r.Field (“DSP Name”)。StartsWith(“S |”) select r;' – boiler1974

+0

好。就像一个随机放在一边:上面的'select r'不需要,不像SQL。如果你想要做额外的事情,只需要它,比如选择一个属性上的特定对象,或者以不同的方式进行格式化。 –

相关问题