第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

按值對(duì) linq 結(jié)果進(jìn)行分組,并按空字符串對(duì) null 或無(wú)效值進(jìn)行分組

按值對(duì) linq 結(jié)果進(jìn)行分組,并按空字符串對(duì) null 或無(wú)效值進(jìn)行分組

C#
弒天下 2023-07-22 18:16:12
我正在嘗試按部分郵政編碼進(jìn)行分組,如果郵政編碼為空或少于 3 個(gè)字符,則將它們分組為“”我見(jiàn)過(guò)一些使用可為空比較器的示例,但不確定如何在下面的上下文中的語(yǔ)法中適應(yīng)類似的內(nèi)容。此外,QBModel.ResultsTable 是一個(gè)動(dòng)態(tài)列表,CallerZipCode 是一個(gè) char(10),因此具有有效值的內(nèi)容可能是“96701-----”  var newset = (from rst in QBModel.ResultsTable          group rst by rst.CallerZipCode.Substring(0, 3) into newGroup          select new DataSourceRecord()          {            State = ToTitleCase(newGroup.Select(i => i.CallerState).FirstOrDefault()),            ZipCode = newGroup.Where(z => z.CallerZipCode.StartsWith(newGroup.Key)).Select(x => x.CallerZipCode.Substring(0, 3)).FirstOrDefault()          }).ToList();這是我發(fā)現(xiàn)的一個(gè)可為 null 的比較器,但如果我要檢查少于 2 個(gè)字符的郵政編碼,可能需要工作:public class NullableComparer<T> : IEqualityComparer<T?> where T : struct{    public bool Equals(T? x, T? y)    {        if (x == null || y == null)            return false;        return x.Equals(y);    }    public int GetHashCode(T? obj)    {        return obj.GetHashCode();    }}我怎樣才能改變這段代碼來(lái)完成我所追求的目標(biāo)?[編輯]剛剛嘗試過(guò)類似的方法,但似乎效果不太好  var newset = (from rst in QBModel.ResultsTable          group rst by rst.CallerZipCode == null || rst.CallerZipCode.Trim().Length() < 3 ? "<null>" : rst.CallerZipCode.Substring(0, 3) into newGroup          select new DataSourceRecord()          {            State = ToTitleCase(newGroup.Select(i => i.CallerState).FirstOrDefault()),            ZipCode = newGroup.Where(z => z.CallerZipCode.StartsWith(newGroup.Key)).Select(x => x.CallerZipCode.Substring(0, 3)).FirstOrDefault()          }).ToList();
查看完整描述

1 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

我認(rèn)為我還沒(méi)有完全理解你的目的,但這是我的看法:


您希望按郵政編碼進(jìn)行分組,但如果郵政編碼為 null 或?yàn)榭栈蜷L(zhǎng)度小于 3 個(gè)字符,您希望將它們放入組中"<null>"。


如果這就是您想要的,您可以嘗試以下操作:


  var newset = (from rst in QBModel.ResultsTable

          group rst by GetGroupRepresentation(rst.CallerZipCode) into newGroup

          select new DataSourceRecord()

          {

            // ...

          }).ToList();

通過(guò)以下實(shí)現(xiàn)GetGroupRepresentation:


private string GetGroupRepresentation(string zipCode)

{

    if (string.IsNullOrEmpty(zipCode) || zipCode.Length < 3)

    {

        return "<null>";

    }


    return zipCode;

}

我不明白為什么你要使用 Substring-method 或 StartsWith-method,所以我只是將其刪除。


這是一個(gè)完整的示例:


static void Main(string[] args)

{

    var zipcodes = new List<string> { "1234", "4321", null, "", "12" };


    // LINQ Query Syntax

    var groups = from code in zipcodes

                 group code by GetGroupRepresentation(code) into formattedCode

                 select formattedCode;


    // I think this is easier to read in LINQ Method Syntax.

    // var groups = zipcodes.GroupBy(code => GetGroupRepresentation(code));

}


private static string GetGroupRepresentation(string zipCode)

{

    if (string.IsNullOrEmpty(zipCode) || zipCode.Length < 3)

    {

        return "<null>";

    }


    return zipCode;

}

http://img1.sycdn.imooc.com//64bbac8a0001b7ee08950289.jpg

查看完整回答
反對(duì) 回復(fù) 2023-07-22
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)