Project

General

Profile

root / branches / compiler / cSharp / ooasCompiler / src / libs / c5 / UserGuideExamples / CharBags.cs @ 3

1
// C5 example
2
// 2004-09-01
3

    
4
using System;
5
using C5;
6
using SCG = System.Collections.Generic;
7

    
8
class MyTest {
9
  static readonly IHasher<TreeBag<char>> sequencedTreeBagHasher
10
    = new C5.HasherBuilder.SequencedHasher<TreeBag<char>,char>();
11
  static readonly IHasher<TreeBag<char>> unsequencedTreeBagHasher
12
    = new C5.HasherBuilder.UnsequencedHasher<TreeBag<char>,char>();
13

    
14
  static readonly IHasher<HashBag<char>> unsequencedHashBagHasher
15
    = new C5.HasherBuilder.UnsequencedHasher<HashBag<char>,char>();
16

    
17
  public static void Main(String[] args) {
18
  }
19

    
20
  public static void FindCollisions(SCG.IEnumerable<String> ss) {
21
    HashBag<int> occurrences = new HashBag<int>();
22
    foreach (String s in ss) {
23
      TreeBag<char> tb = TreeBag(s);
24
      // HashBag<char> hb = HashBag(s);
25
      occurrences.Add(sequencedTreeBagHasher.GetHashCode(tb));
26
      // unsequencedTreeBagHasher.GetHashCode(tb);
27
      // unsequencedHashBagHasher.GetHashCode(hb);
28
    }
29
    
30
  }
31
  
32
  public static TreeBag<char> TreeBag(String s) { 
33
    TreeBag<char> anagram = new TreeBag<char>();
34
    foreach (char c in s) 
35
      anagram.Add(c);
36
    return anagram;
37
  }
38

    
39
  public static HashBag<char> HashBag(String s) { 
40
    HashBag<char> anagram = new HashBag<char>();
41
    foreach (char c in s) 
42
      anagram.Add(c);
43
    return anagram;
44
  }
45
}
46

    
47