public static void foo()
{
var x = new List{1,2,1};
// ruleid: todictionary-crash
Dictionary bad = x.ToDictionary(i=>i,i=>i.ToString());
Dictionary good = x.GroupBy(i=>i).ToDictionary(i=>i.Key,i=>i.First().ToString());
}
< /code>
rules:
- id: todictionary-crash
languages:
- csharp
severity: ERROR
message: Semgrep found a match
patterns:
- pattern-regex: ToDictionary
- pattern-not-regex: GroupBy\(.*\)\.ToDictionary
< /code>
Но как это сделать с «реальными» образцами Semgrep? Если я < /p>
patterns:
- pattern: $X.ToDictionary(...)
- pattern-not: $X.GroupBy(...).ToDictionary(...)
это также улавливает хорошие экземпляры (аналогично шаблону-inside ).
https://semgrep.dev/playground/s/6x3lb показывает, как можно использовать режимы, чтобы найти Todictionary без группы, т.е. [code]public static void foo() { var x = new List{1,2,1};
// ruleid: todictionary-crash Dictionary bad = x.ToDictionary(i=>i,i=>i.ToString());
Dictionary good = x.GroupBy(i=>i).ToDictionary(i=>i.Key,i=>i.First().ToString()); } < /code> rules: - id: todictionary-crash languages: - csharp severity: ERROR message: Semgrep found a match patterns: - pattern-regex: ToDictionary - pattern-not-regex: GroupBy\(.*\)\.ToDictionary < /code> Но как это сделать с «реальными» образцами Semgrep? Если я < /p> patterns: - pattern: $X.ToDictionary(...) - pattern-not: $X.GroupBy(...).ToDictionary(...) [/code] это также улавливает хорошие экземпляры (аналогично шаблону-inside ).
Как я могу упростить код ниже и сделать его более эффективным с помощью цепных операций? В настоящее время я создаю промежуточные объекты и использую для loPb_Sales = df.groupby('Publisher')[ ].sum().sort_values('Global_Sales',ascending=False)
total...
Как я могу упростить код ниже и сделать его более эффективным с помощью цепных операций? В настоящее время я создаю промежуточные объекты и использую для loPb_Sales = df.groupby('Publisher')[ ].sum().sort_values('Global_Sales',ascending=False)
total...
Я новичок во всем этом и работаю над вводным проектом на C#. Моя программа принимает входное сообщение и модификатор для создания шифра Цезаря, а затем с помощью того же модификатора расшифровывает его.
В моем цикле метода Cypher у меня есть...
Я новичок во всем этом и работаю над вводным проектом на C#. Моя программа принимает входное сообщение и модификатор для создания шифра Цезаря, а затем с помощью того же модификатора расшифровывает его.
В моем цикле метода Cypher у меня есть...