• c# 的一些基本操作或属性


    List 去重

    var newList = list.Where((x, i) => list.FindIndex(z => z.Name == x.Name) == i).ToList();

    http下载文件,不保存到服务器,直接使用浏览器下载

    /// <summary>
    /// 根据url下载文件
    /// </summary>
    /// <param name="url">文件url</param>
    /// <param name="fileName">文件名</param>
    public void GetFileFromNetUrl(string url, string fileName)
    {
         Stream stream = null;
         int bytesToRead = 10000;
         byte[] buffer = new Byte[bytesToRead];
         try
         {
             HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(url);
             HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse();
             if (fileReq.ContentLength > 0)
                fileResp.ContentLength = fileReq.ContentLength;
                stream = fileResp.GetResponseStream();
                var resp = Response;
                resp.ContentType = "application/octet-stream";
                //设置文件名
                resp.AddHeader("Content-Disposition", "attachment; filename="" + fileName + """);
                resp.AddHeader("Content-Length", fileResp.ContentLength.ToString());
                int length;
                do
                {
                 if (resp.IsClientConnected)
                    {
                      length = stream.Read(buffer, 0, bytesToRead);
                      resp.OutputStream.Write(buffer, 0, length);
                      resp.Flush();
                      buffer = new Byte[bytesToRead];
                    }
                  else
                   {
                     length = -1;
                   }
                 } while (length > 0);
             }
        finally
        {
         if (stream != null)
         {
            stream.Close();
         }
       }
    }

    获取网络图片并转换为base64

     private string GetImgBase64(string imgUrl)
     {
          WebRequest request = WebRequest.Create(imgUrl);
          WebResponse response = request.GetResponse();
          Stream s = response.GetResponseStream();
          byte[] data = new byte[1024];
          int length = 0;
          MemoryStream ms = new MemoryStream();
          while ((length = s.Read(data, 0, data.Length)) > 0)
          {
              ms.Write(data, 0, length);
          }
          ms.Seek(0, SeekOrigin.Begin);
          return Convert.ToBase64String(ms.ToArray());
    }

    判断请求来源

    public ActionResult DownloadApp()
    {
         //获取客服端请求源
         string agent = Request.UserAgent;
         string[] keywords = { "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" };
         // CloudWave.Framework.Core.Logging.Logging4net.WriteInfo(agent);
         //排除 Windows 桌面系统           
         //if (!agent.Contains("Windows NT") || (agent.Contains("Windows NT") && agent.Contains("compatible; MSIE 9.0;")))
         var downloadurl = "";
         //判断是微信, 直接响应应用宝地址
         if (agent.ToLower().Contains("micromessenger"))
         {
             //获取配置信息
         }
         //安卓
         else if (agent.ToLower().Contains(keywords[0]))
         {
                    
                  
         }
         //苹果
         else if(agent.ToLower().Contains(keywords[1].ToLower())|| agent.ToLower().Contains(keywords[2].ToLower()) 
                    || agent.ToLower().Contains(keywords[3].ToLower()))
         {
                    
                  
         }
           return Json(downloadurl);
    }

     js encodeURI编码 后面解码

     var str1 = HttpUtility.UrlDecode(Keyword);
     var str2 = Server.HtmlDecode(Keyword);
     var str3 = Server.UrlDecode(Keyword);
     var str4 = Microsoft.JScript.GlobalObject.decodeURIComponent(Keyword);

     参数渲染扩展类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace System {
    
        /// <summary>
        /// 参数渲染扩展类
        /// </summary>
        public static class LayoutRenderer {
    
            /// <summary>
            /// 格式化模板参数替换参数项为对应的值的字符串表示
            /// str:模板字符串(例:"Hello {Text}")
            /// </summary>
            /// <param name="str">模板字符串(例:"Hello {Text}")</param>
            /// <param name="jsonValue">对应模板的参数值,json格式(例:"{"Text":"World"}")</param>
            /// <returns></returns>
            public static string FormatTemplate(this string str, string jsonValue) {
                var jObject = Newtonsoft.Json.JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(jsonValue); // (Newtonsoft.Json.Linq.JObject)req.Data;
                if (jObject != null) {
                    string name = "", value = "";
                    foreach (var item in jObject) {
                        if (item.Value is Newtonsoft.Json.Linq.JValue) {
                            name = item.Key;
                            value = System.Web.HttpUtility.UrlDecode(item.Value.ToString());
                        }
                        str = str.Replace(string.Format("{0}{1}{2}", "{", name, "}"), value);
                    }
                }
                return str;
            }
    
            /// <summary>
            /// 格式化模板参数替换参数项为对应的值的字符串表示
            /// str:模板字符串(例:"Hello {Text}")
            /// </summary>
            /// <param name="str">模板字符串(例:"Hello {Text}")</param>
            /// <param name="objValue">对应模板的参数值对象实例</param>
            /// <returns></returns>
            public static string FormatTemplate<T>(this string str, T objValue) where T : new() {
                if (objValue != null) {
                    var type = objValue.GetType();
                    var properties = type.GetProperties();
                    foreach (var item in properties) {
                        // item.GetValue();
                        var value = item.GetValue(objValue);
                        if (value != null)
                            str = str.Replace(string.Format("{0}{1}{2}", "{", item.Name, "}"), value.ToString());
                    }
                }
                return str;
            }
    
            /// <summary>
            /// 将传入的字符串中间部分字符替换成特殊字符
            /// </summary>
            /// <param name="value">需要替换的字符串</param>
            /// <param name="startLen">前保留长度</param>
            /// <param name="endLen">尾保留长度</param>
            /// <param name="replaceChar">特殊字符</param>
            /// <returns>被特殊字符替换的字符串</returns>
            public static string ReplaceWithSpecialChar(string value, int startLen = 3, int endLen = 4, char specialChar = '*')
            {
                try
                {
                    int lenth = value.Length - startLen - endLen;
    
                    string replaceStr = value.Substring(startLen, lenth);
    
                    string specialStr = string.Empty;
    
                    for (int i = 0; i < replaceStr.Length; i++)
                    {
                        specialStr += specialChar;
                    }
    
                    value = value.Replace(replaceStr, specialStr);
                }
                catch (Exception)
                {
                    return value;
                }
    
                return value;
            }
        }
    }
  • 相关阅读:
    os 模块1
    除法
    python基础四(jsonossys andomstring模块、文件、函数)
    python基础三(集合、文件)
    linux下mysql安装
    linux下tomcat安装
    linux系统jdk安装
    python基础二(list,tuple元祖、dic字典,字符串)
    python基础一(安装、变量、循环、git)
    charles抓包
  • 原文地址:https://www.cnblogs.com/miskis/p/9150746.html
Copyright © 2020-2023  润新知