2014-03-27 87 views
0

我需要從字符串中提取第一個數字值集。在這裏(Link Here),我找到了RegEx的方式來做到這一點。但是,在我的情況下,我有一個LINQ查詢從我需要做同樣的邏輯。從C#中的字符串中提取第一個數字字符

這裏是我的exisiting邏輯

bool Isbn = db.BibContents.Any(ad => ad.NormValue == ISBN); // I need to do the numeric split logic into the db column NormValue 

注意

我不能循環在這裏首先得到的值,並在循環比較。因爲我在DB和NormValue中有大量的記錄,列是nvarchar(max)類型。

任何幫助,將不勝感激。

感謝

+1

你應該在存儲過程中處理它...... –

+0

是的,如果你需要數據庫正則表達式的支持(或者等價的功能),那就是存儲過程可能真的有用的情況。 –

回答

0
bool Isbn = db.BibContents.Any(ad => GetDigits(ad.NormValue) == ISBN); 

public string GetDigits(string text) { 
    return string.Join("",text.AsEnumerable().Where(char.IsDigit)); 
} 

怎麼樣?

+0

獲取此錯誤LINQ to Entities不識別方法'System.String GetDigits(System.String)'方法,並且此方法不能轉換爲存儲表達式。' – DonMax

+0

更新了字符串簽名而不是int簽名的方法 – woutervs

+0

我只使用了字符串signatured方法,並得到了上述錯誤。 – DonMax

0

你如何解析你的結果到字符串?我不太瞭解LINQ,但我會將結果解析爲字符串並使用正則表達式。

相關問題