我有一個(gè)名為策略的表,其中包含許多應(yīng)對(duì)策略:[ { "id": 6, "title": "Coping with Depression", "description": "A coping strategy for depression. A description of the coping strategy. \r\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", "topic": "depression" }, { "id": 18, "title": "Coping with Stress", "description": "A coping strategy for stress. A description of the coping strategy. \r\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", "topic": "stress" }]該表中的一列稱為“主題”,可以包含多個(gè)主題字符串,例如“壓力抑郁”等。上面的示例數(shù)據(jù)說(shuō)明了可行的場(chǎng)景,其中“主題”列中只有一個(gè)主題字符串。我的代碼如下:var listOfTerms = new List<string>() { "stress", "depression" };var strategies = _context.Strategies .Where(strategy => listOfTerms.Any(t => t.Equals(strategy.Topic))) .ToListAsync();我也嘗試過(guò):var strategies = _context.Strategies .Where(strategy => listOfTerms.Any(t => t.ToLower().Contains(strategy.Topic.ToLower()))) .ToListAsync();這段代碼適用于上面所示的場(chǎng)景,即 Topic 列中只有一個(gè) Topic 字符串。如果我將主題字符串“stress”添加到場(chǎng)景 id = 6 的主題列中,那么該行將不會(huì)返回到策略列表中。因此,總之,我想從 _context.Strategies 表中檢索所有項(xiàng)目,其中strategy.Topic列的文本包含在listOfTerms中項(xiàng)目的文本中,如果strategy.Topic列的文本可以包含多個(gè)項(xiàng)目一個(gè)主題字符串。任何幫助將不勝感激。
1 回答

猛跑小豬
TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
好吧,我想我終于明白你的問題了。
鑒于:
class Problem{ public string topic { get; set; } }
如果我這樣設(shè)置:
List<Problem> problems = new List<Problem>(); problems.Add(new Problem { topic = "stress" }); problems.Add(new Problem { topic = "depression" }); problems.Add(new Problem { topic = "stress, depression" });
然后創(chuàng)建一個(gè)術(shù)語(yǔ)列表:
var listOfTerms = new List<string>() { "stress", "depression" };
然后我可以得到你想要的結(jié)果:
var result = problems.Where(item => listOfTerms.Any(term => item.topic.Contains(term))).ToList();
該 linq 語(yǔ)句讓我回到了所有三個(gè)“問題”。
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)
0/150
提交
取消