[英]Finding if value is between two columns in data table
在過去的一周中,我一直在尋找有關此問題的答案,但似乎找不到答案。
我編寫了一個程序來運行我玩的在線游戲的抽獎活動。 我的問題是我需要從主要獎品的圖紙中刪除重復項(新要求)。
現在我將數據庫加載到DataTable中,然后生成一個隨機數,然后需要查找該隨機數在DataTable的兩列之間的位置,即TicketNumberStart
和TicketNumberEnd
。 這就是我現在使用的LINQ。
var winner = from jnkDt in dt.AsEnumerable()
where
jnkDt.Field<int>("TicketNumberStart") > rndNumber &&
jnkDt.Field<int>("TicketNumberEnd") < rndNumber
select new
{
name = jnkDt.Field<string>("BuyerName")
};
foreach (var jnk in winner)
tmpName = jnk.name.ToString();
我遇到的問題是,無論rndNumber是什么,它都會返回一個空白字符串。
我假設TicketNumberEnd
大於 TicketNumberStart
,在這種情況下,您的條件將永遠不會成立。 我懷疑您需要進行比較:
var winner = from jnkDt in dt.AsEnumerable()
where
jnkDt.Field<int>("TicketNumberStart") <= rndNumber &&
jnkDt.Field<int>("TicketNumberEnd") >= rndNumber
....
要么
var winner = from jnkDt in dt.AsEnumerable()
where
rndNumber >= jnkDt.Field<int>("TicketNumberStart") &&
rndNumber <= jnkDt.Field<int>("TicketNumberEnd")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.