私は助けが必要です。 私はtext1にあるが、text2にはない単語を見つけ出す必要があります。c#2つのテキストで異なる単語を検索
例:
テキスト1(ハロー、ワールドリンゴ、パイナップル、キャベツ、リンゴ)
テキスト2(こんにちは、世界、パイナップル)
結果:
リンゴ2。
キャベツ1;
また、あなたが2つの配列を使用して、あなたがこのような方法であなたの目標を達成することができGroup By
を使用することができますリストなし
私は助けが必要です。 私はtext1にあるが、text2にはない単語を見つけ出す必要があります。c#2つのテキストで異なる単語を検索
例:
テキスト1(ハロー、ワールドリンゴ、パイナップル、キャベツ、リンゴ)
テキスト2(こんにちは、世界、パイナップル)
結果:
リンゴ2。
キャベツ1;
また、あなたが2つの配列を使用して、あなたがこのような方法であなたの目標を達成することができGroup By
を使用することができますリストなし
string text1 = "hello, world apple,pineapple,cabbage,apple";
string text2 = "hello, world,pineapple";
string pattern = @"\p{L}+";
var list1 = Regex.Matches(text1, pattern).Cast<Match>().Select(x => x.Value);
var list2 = Regex.Matches(text2, pattern).Cast<Match>().Select(x => x.Value);
var result = list1.Where(x => !list2.Contains(x))
.GroupBy(x => x)
.Select(x =>new
{
Word = x.Key,
Count= x.Count()
})
.ToList();
これがなぜ「世界のりんご」はに貢献ん
をそれを行うには素晴らしいだろう:
string[] text1 = new []{"hello", "world", "apple", "pineapple", "cabbage", "apple"};
string[] text2 = new []{"apple", "pineapple", "cabbage", "apple"};
string[] combinedText = text1.Concat(text2).ToArray();
var groups = combinedText.GroupBy(v => v);
foreach(var group in groups)
Console.WriteLine("Value {0} has {1} items", group.Key, group.Count());
は編集:
あなたは少し違った方法で解決を望んでいるようですので、私はまたそれを下に示しています:
string[] text1 = new []{"hello", "world", "apple", "pineapple", "cabbage", "apple"};
string[] text2 = new []{"apple", "pineapple", "cabbage", "apple"};
var text1Groups = text1.GroupBy(v => v);
var text2Groups = text2.GroupBy(v => v);
foreach(var group in text1Groups)
Console.WriteLine(group.Key.ToString() + group.Count().ToString());
foreach(var group in text2Groups)
Console.WriteLine(group.Key.ToString() + group.Count().ToString());
否定的な有権者ですか?なぜ否定的な投票ですか? –
...そこにいくつかのパフォーマンスの改善の余地があるが、それは明確にするためにそれらを残しておきます。もちろん、
を返します。 「りんご」の数? –
これは、リンゴがパイナップル、ハローワールド、あなたはどうですか?のようなテキストであることを意味しています。だから私はそれぞれの言葉とそのカウンターを見つける必要があります。 –